[RESOLU][PHP] Récupérer les valeurs de différentes checkbox

C’est sûrement une question de noob, mais j’assume. Je suis là pour apprendre. Et puis je suis un peu pressé par le temps, vu qu’il faut que cela fonctionne pour demain matin et je patauge là dedans depuis trop longtemps…

Bon alors, j’ai sur une page un paquet de checkbox. Je leur est mis la même valeur pour leur attribut name (par exemple : plop). Et pour chaque checkbox, l’attribut value correspond à une id différente présente dans ma DB.

Ce que j’espère déjà en faisant ça, c’est de récupérer un tableau multidimensionnel. qui aurait à peu près la gueule :

$_POST['plop'][0] => 42 $_POST['plop'][1] => 13 $_POST['plop'][2] => 21
Selon les checkbox cochées.

Déjà, dites moi si je me trompe de ce côté là.

Ensuite ce que je n’arrive pas à faire, c’est à récupérer les différentes id des checkbox validées. J’aurais besoin de les récupérer pour les foutre dans un tableau tout con à deux dimensions et pas associatif.

Quelqu’un pour m’aider?

Si je me souvient bien, le tableau que tu vas récupérer n’aura pas exactement cette tete la mais plutôt celle la :

$_POST['plop'][13] => 0 ou 1 $_POST['plop'][21] => 0 ou 1 $_POST['plop'][42] => 0 ou 1

En gros tu ne récupères pas uniquement les valeurs des checkbox cochées mais celles de toutes les checkbox, avec comme valeur 1 ou 0, cochée ou non.

(Pardon si c’est pas ultra clair, je sors de la sieste)

Très clair. Merci.

C’est pas trop ce que je voulais, mais pourquoi pas…

Je vais voir si je m’en sors.

Tu ne sais pas récupérer les valeurs ? Il suffit de faire :print('<pre>'); var_dump($_POST); print('</pre>');Ca devrait te renseigner sur les valeurs et après comment les récupérer.

Cela m’embrouille encore plus.

çà me sort par exemple :

string(1) “6”

Le chiffre entre guillement correspond à ce que j’ai mis dans mon value, c’est à dire mon id.
Donc je dirais qu’il récupère bien mon id.
Par contre si je coche plusieurs checkboxs. Le chiffre entre guillement correspond à l’id de la dernière chexboxs du formulaire cochées.

çà m’agace… Je bloque comme une merde alors que cela doit être tout con.

Il faut que tes checkbox aient un nom différent !
Moi j’utilise cette méthode :

<input type="checkbox" name="check_1" value="13"/> <input type="checkbox" name="check_2" value="14"/> <input type="checkbox" name="check_3" value=15"/> ... <input type="checkbox" name="check_10" value="23"/>
On numérote les checkbox dans name. Value étant l’ID.

Seules les checkbox cochées sont envoyées.
Il suffit que ton fichier PHP vérifie les cases à cocher qui ont été envoyées pour récupérer l’ID. Pour cela on utilise une boucle qui va vérifier les checkbox existantes :

[code]<?

$id = array(); // tableau qui contiendra la liste des ID sélectionnés

// l’exemple supporte 10 cases à cocher :
for ($i = 1; $i <11; $i++) {
if (isset($POST("check$i"))) $id[] = $POST("check$i"); // vérifie si check_$i existe
}

?>[/code]

Voilà !

et avec des checkbox qui s’apellent toute plop[], ca marche mieux ?

oui j’allais le dire, je fais comme ça sur mon site.
bout d’explication :

[code]

[/code]

maintenant avec php :

[code]<?php

if(isset($_POST[‘plop’]))
{
foreach($_POST[‘plop’] AS $nom=>$value)
echo $nom,’ -> ',$value, ‘
’, “\n”;
}

?>[/code]

résultat … le tableau indicé par clé valeur cochée.
pas clair ?

vois ici : http://home.fser.info/geekzone/checkbox.php et http://home.fser.info/geekzone/checkbox.php?source=1 pour voir la source.

et sauvegardez, je vais le laisser normalement, mais c’est pas sûr non plus.

Ok merci beaucoup pour ces pistes. B) Je teste.

Ok je me suis débloqué.

Merci beaucoup pour les explications avec bout de code. B)

FAQ PHP - question 3
Cette FAQ de la documentation officielle m’a rendue de bon service, dont la résolution de ton problème.

Je connaissais pas cette méthode ! merci à fser pour les explications, ça me servira à moi aussi ! c’est en effet beaucoup plus simple B)