Récupérer les valeurs de plusieurs checkbox dans un tableau

Salut a toi Mister Rezo !!

Je t’écris pour te poser une question concernant les formulaires de SPIP 
CVT et les checkbox multiples.

J'ai un formulaire que je généré dynamiquement a l'aide d'une boucle de 
DOCUMENT ici :
[http://pastebin.com/WZy5bvFA](http://pastebin.com/WZy5bvFA)

et mon fichier de traitement de formulaire ici ou je souhaite récupérer 
les valeurs des champs qui porte le name "id_document"
[http://pastebin.com/TjDiViqU](http://pastebin.com/TjDiViqU)

(Le tout étant bien entendu dans le dossier formulaires)

Le gros problème c'est que _request() ne m'envoie que le dernier élément 
de id_document en integer au lieu de m'envoyer un array.
(Sachant qu'en GET, j'ai bien toutes mes variables dans l'url)

Il semblerait que ça viens de la fonction elle même :

[http://pastebin.com/69wSTCaA](http://pastebin.com/69wSTCaA)

(D'ailleurs ça serais cool de donner des noms de variables pertinent 
pour garder un peu plus de consistance dans le code afin de pouvoir 
debugger et comprendre le code du core ;) )

Tu pourrais me donner une piste pour pouvoir récupérer toutes les values 
de mes checkedbox ?

Merci d'avance, j'attends ta réponse avec impatience :)


Edouard Reinach
+1 514.582.5156

Le 05/07/2013 22:53, Edouard Reinach a écrit :

Tu pourrais me donner une piste pour pouvoir récupérer toutes les values
de mes checkedbox ?

A première vue (lecture rapide) ce n'est pas un problème lié à Spip mais à la façon de déclarer les inputs : il faudrait utiliser plutôt name="id_document" pour transmettre la liste de toutes les checkboxes cochées du groupe id_document, et pas que la dernière.

<input type="checkbox" name="id_document" id="id_document_#ID_DOCUMENT" value='#ID_DOCUMENT' ...

Et récupérer coté php un tableau des checkboxes cochées :

function formulaires_commande_traiter_dist(){
   $photos = _request('id_document');
   foreach($photos as $photo){
     /*...*/
   }
   return array(
    'message_ok' => join(',',$photos),
   );
}

--
Nico D.

Bonjour,
Je suis intéressée par ce code, si tes recherches ont abouti à quelque chose de fonctionnel Edouard.
Merci :slight_smile:
Nath

-----Message d'origine-----
De : Nicolas Dorigny [mailto:nicolas.dorigny@gmail.com]
Envoyé : samedi 6 juillet 2013 16:34
À : spip@rezo.net
Objet : Re: [Spip] Récupérer les valeurs de plusieurs checkbox dans un tableau

Le 05/07/2013 22:53, Edouard Reinach a écrit :

Tu pourrais me donner une piste pour pouvoir récupérer toutes les
values de mes checkedbox ?

A première vue (lecture rapide) ce n'est pas un problème lié à Spip mais à la façon de déclarer les inputs : il faudrait utiliser plutôt name="id_document" pour transmettre la liste de toutes les checkboxes cochées du groupe id_document, et pas que la dernière.

<input type="checkbox" name="id_document"
id="id_document_#ID_DOCUMENT" value='#ID_DOCUMENT' ...

Et récupérer coté php un tableau des checkboxes cochées :

function formulaires_commande_traiter_dist(){
   $photos = _request('id_document');
   foreach($photos as $photo){
     /*...*/
   }
   return array(
    'message_ok' => join(',',$photos),
   );
}

--
Nico D.

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc