Piste :
Différences ¶
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révisionLes deux révisions suivantes | |||
fr:tutoriels:jelixnews-1.7:formulaire-de-news [2011/05/24 16:42] – modification externe 127.0.0.1 | fr:tutoriels:jelixnews-1.7:formulaire-de-news [2019/05/22 20:27] – laurent | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | Il y a deux manières de faire des formulaires : soit de manière classique, "à la main", soit en utilisant le nouveau système de formulaire jForms. jForms s' | + | Il y a deux manières de faire des formulaires : soit de manière classique, "à la |
+ | main", soit en utilisant le nouveau système de formulaire jForms. jForms | ||
+ | s' | ||
+ | formulaire (HTML, XUL ou service web) : création, sauvegarde, vérification des | ||
+ | saisies, etc, et à la fois de la génération | ||
+ | templates. | ||
- | Dans ce chapitre, on va utiliser la méthode " | + | Dans ce chapitre, on va utiliser la méthode " |
+ | familiariser avec les enchaînements d' | ||
+ | Jelix. Plus loin dans le tutoriel, nous vous montrerons comment utiliser jForms. | ||
- | Le but de ce chapitre, va être de créer un simple formulaire afin d' | + | Le but de ce chapitre, va être de créer un simple formulaire afin d' |
+ | de nouvelles news. | ||
===== Le template et les URLs ===== | ===== Le template et les URLs ===== | ||
- | En premier lieu, nous allons faire le template, très simplifié, que l'on stocke dans le fichier @@F@actu.org/ | + | En premier lieu, nous allons faire le template, très simplifié, que l'on stocke |
+ | dans le fichier @@F@actu.org/ | ||
<code xml> | <code xml> | ||
Ligne 36: | Ligne 45: | ||
</ | </ | ||
- | Rien de très complexe, au niveau HTML. Toutefois vous remarquerez l' | + | Rien de très complexe, au niveau HTML. Toutefois vous remarquerez l' |
+ | nouveaux tags : @@{formurl}@@, @@{formurlparam}@@ et @@{jurl}@@. Quelques explications... | ||
- | Dans Jelix, vous éviterez de mettre des URLs en dur dans les templates ou les actions, pour des raisons de facilité de maintenance et d' | + | Dans Jelix, vous éviterez de mettre des URLs en dur dans les templates ou les |
+ | actions, pour des raisons de facilité de maintenance et d' | ||
+ | d'URL de Jelix vous permet de centraliser toutes les URLs dans un fichier | ||
+ | @@app/ | ||
+ | dans les modules). | ||
+ | Ainsi l' | ||
+ | donnant uniquement le nom de l' | ||
- | Ainsi, pour le lien " | + | Ainsi, pour le lien " |
+ | "/ | ||
+ | index.php, ou si vous modifier l'url de l' | ||
+ | @@news/ | ||
+ | vos templates. | ||
- | On aurait pu utiliser le tag @@{jurl}@@ aussi sur la balise @@E@< | + | On aurait pu utiliser le tag @@{jurl}@@ aussi sur la balise @@E@< |
+ | si l'URL contient des paramètres (comme c'est le cas ici avec module et action), | ||
+ | il est préférable de les mettre dans des champs cachés. Cependant, si on | ||
+ | changeait la configuration sur le mapping URL, ce n'est pas forcé qu'il y ait | ||
+ | toujours ces paramètres. Aussi on utilise conjointement les plugins | ||
+ | @@{formurl}@@ et @@{formurlparam}@@ qui se chargeront eux même de décider ce | ||
+ | qu'il faut mettre dans l' | ||
+ | champs cachés. | ||
- | Note : par défaut, @@{jurl}@@, @@{formurl}@@ et @@{formurlparam}@@ | + | Note : par défaut, @@{jurl}@@, @@{formurl}@@ et @@{formurlparam}@@ |
+ | correctement dans l'URL les caractères réservés en HTML/XML. | ||
===== Affichage du formulaire ===== | ===== Affichage du formulaire ===== | ||
- | On va créer une première action ' | + | On va créer une première action ' |
+ | afficher un formulaire de saisie d'une nouvelle news. | ||
<code php> | <code php> | ||
Ligne 72: | Ligne 101: | ||
Là encore, on utilise le tag @@{jurl}@@. | Là encore, on utilise le tag @@{jurl}@@. | ||
- | Maintenant rafraîchissez la page de liste des news dans le navigateur ( http:// | + | Maintenant rafraîchissez la page de liste des news dans le navigateur ( |
+ | http:// | ||
+ | news". Si vous cliquez dessus, le formulaire devrait s' | ||
===== Sauvegarde des données ===== | ===== Sauvegarde des données ===== | ||
- | Comme on l'a indiqué dans le formulaire, il nous faut maintenant créer une action ' | + | Comme on l'a indiqué dans le formulaire, il nous faut maintenant créer une |
+ | action ' | ||
- | En premier lieu, on récupère un record, que l'on rempli ensuite avec les données envoyées par le formulaire. Les paramètres d'URL ($_GET) ou postés ($_POST), sont accessibles via la méthode param() des contrôleurs. | + | En premier lieu dans cette action, on récupère un record, que l'on rempli ensuite avec les données |
+ | envoyées par le formulaire. Les paramètres d'URL (@@$_GET@@) ou postés (@@$_POST@@), | ||
+ | sont accessibles via la méthode | ||
<code php> | <code php> | ||
Ligne 95: | Ligne 129: | ||
Enfin, on va rediriger vers la liste de news. | Enfin, on va rediriger vers la liste de news. | ||
+ | |||
<code php> | <code php> | ||
$rep = $this-> | $rep = $this-> | ||
Ligne 118: | Ligne 153: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | Bien sûr, une bonne manière de développer ici serait de vérifier chaque | ||
+ | paramètre avant de les enregistrer, | ||
+ | de gestion qui s' | ||
+ | et le texte ne sont pas vide, et que la date est au format correcte. | ||
Vous pouvez maintenant utiliser le formulaire pour créer de nouvelles news. | Vous pouvez maintenant utiliser le formulaire pour créer de nouvelles news. | ||