Carnet Wiki

Formulaire b-a-ba , Charger ...

Version 8 — il y a 4 semaines — 78.242.xx.xx

Formulaire, commençons par le commencement, qui peut le moins pourra peut être le plus ..

Vous êtes à À l’aise avec les boucles spip, mais vous n’avez rien compris à la doc sur les formulaires CVT . ( et donc comme moi , révérant mais inapte à participer ). Alors vous êtes comme moi. Ce texte, à corriger et compléter, aimerait vous essayer de préparer à y comprendre un peu quelque chose.

Par l’exemple, comment se préparer à intégrer un formulaire HTML dans une page d’un SPIP !

1°) intégrer un formulaire comme celui ci-dessous à apage0.html (appelée avec spip.php ?page=apage0) ne peut rien faire (sauf si un plugin s’en charge) !
On voit juste, au clic sur le bouton ; cela a à pour effet de remettre à zéro les saisies effectuées :

  1. < html ... body>
  2. <hr />
  3.  <form method="post" action="#SELF"> <!-- #SELF ou #ENV{action} -->
  4.  #SET{un_tableau, #ARRAY}
  5.   <input type='text' name='texte' id='texte' value="#ENV{texte}" class="text" />
  6.   <input type='text' name='texte2' id='texte2' value="#SET{un_tableau,#GET{un_tableau}|push{texte2}}" class="text" />
  7. <hr />
  8.    <input type="radio" name="choix" value="#SET{un_tableau,#GET{un_tableau}|push{YES}}" checked="">
  9.    <label>Oui</label>
  10.    <input type="radio" name="choix" value="#SET{un_tableau,#GET{un_tableau}|push{NO}}">
  11.    <label>Non</label>
  12.    <input type="radio" name="choix" id="coucou" value="#SET{un_tableau,#GET{un_tableau}|push{niOuiniNon}}">
  13.    <label class="checkbox-inline" for="coucou">Autre</label>
  14. <hr />
  15.    <input type="checkbox" name="soif" value="#SET{un_tableau,#GET{un_tableau}|push{Soif}}">
  16.    <label>Soif</label>
  17.    <input type="checkbox" name="faim" value="NON agree">
  18.    <label>Faim</label>
  19.    <input type="checkbox" name="choix" id="motID_MOT" value="#SET{un_tableau,#GET{un_tableau}|push{Autre}}">
  20.    <label class="checkbox-inline" for="coucou">Autre</label>
  21. <hr />
  22.   <input type="submit" value="<:bouton_enregistrer:>" class="ui button" /> <!-- class="submit" -->
  23.  </form>
  24. <hr /><hr />
  25. [ //  une instruction SPIP pour afficher les valeurs mémorisées en HTML (#REM) ]
  26. [(#GET{un_tableau}|foreach)]
  27. </ body... html>

Télécharger

La page affiche le tableau déclaré par #SET qui pourrait aussi bien être à l’extérieur du formulaire :
-  => texte2
-  1=> YES
-  2=> NO
-  3=> niOuiniNon
-  4=> Soif
-  5=> Autre

2°) on extrait le source du formulaire (copie-collé en incluant #GET) dans un fichier /formulaire/aform.html ), que l’on fait ré-intègrer en place par l’appel de balise SPIP [(#FORMULAIRE_AFORM)].
Pas de changement .

3°) créer un fichier /formulaire/aform.php :

  1. <?php
  2. function formulaires_aform_charger_dist(){
  3.         $valeurs = array(
  4.                 "texte" => "blabla",
  5.                 "choix" => "",
  6.                 "soif" => "",
  7.                 "faim" => "",
  8.                 "autre" => ""
  9.                 );
  10.         return $valeurs;
  11. }
  12. ...
  13. ?>

Télécharger

3°) créer un fichier /formulaire/aform.php :

De là on voit bien comment exploiter ces tableaux dans des boucles spip.

Voilà pour un début de compréhension de la fonction _charger des formulaires CVT
(on peut aussi passer une requête à l’url via cette fonction : ’trucs’=>_request(’trucs’) ,
c’est un autre monde mais si des geeks désœuvrés veulent compléter
La fonction charger() des formulaires CVT
Passage d’arguments aux fonctions CVT

4°) ...