Piste :
Différences ¶
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | Prochaine révisionLes deux révisions suivantes | ||
tutoriels:principal:formulaire-de-news [2008/04/23 12:50] – laurent | tutoriels:principal:formulaire-de-news [2008/05/02 09:52] – édition externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Création d'un formulaire de news ====== | ||
+ | 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' | ||
+ | |||
+ | Dans ce chapitre, on va utiliser la méthode " | ||
+ | |||
+ | Le but de ce chapitre, va être de créer un simple formulaire afin d' | ||
+ | |||
+ | |||
+ | ===== Le template et les URLs ===== | ||
+ | |||
+ | En premier lieu, nous allons faire le template, très simplifié, que l'on stocke dans le fichier newsform.tpl : | ||
+ | |||
+ | <code xml> | ||
+ | < | ||
+ | |||
+ | <form action=" | ||
+ | {formurlparam ' | ||
+ | < | ||
+ | <tr> | ||
+ | < | ||
+ | < | ||
+ | </tr> | ||
+ | <tr> | ||
+ | < | ||
+ | < | ||
+ | </tr> | ||
+ | <tr> | ||
+ | < | ||
+ | < | ||
+ | </tr> | ||
+ | </ | ||
+ | < | ||
+ | <a href=" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Rien que de très classique, au niveau HTML. Toutefois vous remarquerez l' | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Ainsi, pour le lien " | ||
+ | |||
+ | On aurait pu utiliser le tag {jurl} aussi sur la balise < | ||
+ | |||
+ | Note : par défaut, {jurl}, {formurl} et {formurlparam} | ||
+ | |||
+ | |||
+ | ===== Affichage du formulaire ===== | ||
+ | |||
+ | On va créer une première action, ' | ||
+ | |||
+ | <code php> | ||
+ | function createform(){ | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | $rep-> | ||
+ | return $rep; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Pour accéder à cette page, on va rajouter un lien en bas dans le template listenews.tpl | ||
+ | |||
+ | <code html> | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | |||
+ | Là encore, on utilise le tag {jurl}. | ||
+ | |||
+ | Maintenant rafraichissez la page de liste des news dans le navigateur ( http:// | ||
+ | |||
+ | |||
+ | |||
+ | ===== Sauvegarde des données ===== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | <code php> | ||
+ | $news = jDao:: | ||
+ | $news-> | ||
+ | $news-> | ||
+ | $news-> | ||
+ | </ | ||
+ | |||
+ | On récupère ensuite une factory de dao pour enregistrer le record. | ||
+ | |||
+ | <code php> | ||
+ | $dao = jDao:: | ||
+ | $dao-> | ||
+ | </ | ||
+ | |||
+ | Enfin, on va rediriger vers la liste de news. | ||
+ | <code php> | ||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | return $rep; | ||
+ | </ | ||
+ | |||
+ | Cela donne au final : | ||
+ | |||
+ | <code php> | ||
+ | function createsave(){ | ||
+ | $news = jDao:: | ||
+ | $news-> | ||
+ | $news-> | ||
+ | $news-> | ||
+ | |||
+ | $dao = jDao:: | ||
+ | $dao-> | ||
+ | |||
+ | $rep = $this-> | ||
+ | $rep-> | ||
+ | return $rep; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Vous pouvez maintenant utiliser le formulaire pour créer de nouvelles news. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | * Suite : [[tutoriels: | ||
+ | * Précédent : [[tutoriels: | ||
+ | * [[tutoriels: |