Comment récupérer les valeurs d'un CheckBox ? (Résolu)

Comment récupérer les valeurs d'un CheckBox ? (Résolu) - PHP - Programmation

Marsh Posté le 11-12-2007 à 10:36:17    

Bonjour,
 
Voilà, sur mon site j'ai un formulaire avec des cases à cocher.
Mon soucis c'est que je n'arrive pas à récupérer les valeurs renvoyé par celui-ci.
Je sais que pour un champ classique on va entrer : "echo $_POST['nom_du_champ'];" et ça va marcher mais pour des cases à cocher  :??:  
 
Mon formulaire se présente de la façon qui suit :
 
<td colspan="2">Pièces jointes :</td></tr>  <tr><td><label id="lbl_reponse" for="reponse"></label></td><td>
   <input class="checkbox" name="reponse" id="reponse-0" value="1" type="checkbox"> <label id="lbl_reponse-0" for="reponse-0">Inscriptions</label><br>
 
   <input class="checkbox" name="reponse" id="reponse-1" value="2" type="checkbox"> <label id="lbl_reponse-1" for="reponse-1">Fiches</label><br>
   <input class="checkbox" name="reponse" id="reponse-2" value="3" type="checkbox"> <label id="lbl_reponse-2" for="reponse-2">Convocation</label><br>
   <input class="checkbox" name="reponse" id="reponse-3" value="4" type="checkbox"> <label id="lbl_reponse-3" for="reponse-3">Attestation</label><br>
   <input class="checkbox" name="reponse" id="reponse-4" value="5" type="checkbox"> <label id="lbl_reponse-4" for="reponse-4">Facture</label>
 
 
Je dois donc récupérer la valeur de l'id et non du name (je ne peux malheureusement pas modifier le code source du formulaire, j'utilise une classe pour le générer...)
 
Merci d'avance pour vos réponses  :jap:

Message cité 1 fois
Message édité par PIGs_DarkSith le 11-12-2007 à 17:02:27

---------------
PIGs_DarkSith a parlé !
Reply

Marsh Posté le 11-12-2007 à 10:36:17   

Reply

Marsh Posté le 11-12-2007 à 10:38:06    

Case cochée : $_POST['nom-de-ta-case'] == 'value de ta cas'
Case pas cochée : $_POST['nom-de-ta-case'] indéfinie ou vaut '' (test avec empty() par exemple)
 
Et puis un print_r() sur $_POST et tu verra directement quoi ya dedans :o


Message édité par dwogsi le 11-12-2007 à 10:39:21

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 11-12-2007 à 10:39:50    

T'as mis le même name à toutes les checkbox, ça risque pas de marcher :( Il faut que le name soit différent.

Reply

Marsh Posté le 11-12-2007 à 10:40:38    

PIGs_DarkSith a écrit :

Je dois donc récupérer la valeur de l'id et non du name (je ne peux malheureusement pas modifier le code source du formulaire, j'utilise une classe pour le générer...)


J'avais pas vu ça [:pingouino] Ben c'est foutu, on peut pas récupérer l'id, seul le name est utilisé pour transmettre. Jette ta classe :D

Reply

Marsh Posté le 11-12-2007 à 10:43:11    

Citation :

Jette ta classe :D


Ben j'aimerais bien moi, en plus elle me fait plus chier qu'autre chose celle-là  :o  
 
En clair, vous me confirmer que je peux rien faire avec cette classe ?  :D


---------------
PIGs_DarkSith a parlé !
Reply

Marsh Posté le 11-12-2007 à 10:45:47    

On confirme :D

Reply

Marsh Posté le 11-12-2007 à 11:11:20    

A merde j'avais même pas lu correctement!
Les id, j'me suis dis que ça devait signifier les name pour certains.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 11-12-2007 à 11:39:08    

html: name="reponse[]"
php: $_POST['reponse']


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 11-12-2007 à 17:00:15    

C'est bon j'ai réussi, en mettant reponse[] dans le name au lieu de reponse à tout mes champs.
 
Et avec cette fonction je peux récupérer toutes mes valeurs :
foreach($_POST['reponse'] as $reponse){
    echo $reponse.'<br />';
}
 
Le post de sielfried était pas très développé mais m'a quand même mis sur la piste  :p  
 
Merci pour vos réponses.


---------------
PIGs_DarkSith a parlé !
Reply

Marsh Posté le 11-12-2007 à 17:20:00    

PIGs_DarkSith a écrit :


Et avec cette fonction je peux récupérer toutes mes valeurs :
foreach($_POST['reponse'] as $reponse){
    echo $reponse.'<br />';
}


 
Je suppose que c'est juste une boucle de test ? Parce que sinon, grosse faille de sécurité là (ne jamais afficher ce qui provient directement de l'utilisateur).


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 11-12-2007 à 17:20:00   

Reply

Marsh Posté le 11-12-2007 à 20:06:30    

PIGs_DarkSith a écrit :

Citation :

Jette ta classe :D


Ben j'aimerais bien moi, en plus elle me fait plus chier qu'autre chose celle-là  :o  
 
En clair, vous me confirmer que je peux rien faire avec cette classe ?  :D


 
Tu parles d'une classe ou d'un id ? L'un n'est pas l'autre ... L'id sert à repérer sans ambigüité un élément dans une page, une balise HTML plus concrètement. ça sert de pointeur d'acces pour le DOM par exemple : si tu as 50 checkboxes, toutes doivent avoir un ID différent (en  revanche, elles peuvent avoir le même name) et par exemple avec javascript, tu peux en choisir une en parculilier par document.getElementById('id_de_la_balise');
L'id peut aussi serevir à appliquer des styles CSS justement par ce moyen (1 id == 1 et 1 seule balise)


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 12-12-2007 à 14:27:22    

Citation :

Je suppose que c'est juste une boucle de test ? Parce que sinon, grosse faille de sécurité là


Oui c'est un boucle de test en effet.
Par contre je comprend pas trop en quoi c'est un faille de sécurité  :??:  
Enfin c'est pour un petit réseau Intranet donc la sécurité, c'est pas aussi important. Je vois pas une opératrice hacker le site  :o  
 

Citation :

Tu parles d'une classe ou d'un id ? L'un n'est pas l'autre ...


D'une classe, l'entreprise à développer des classes pour les formulaires.
Au lieu d'avoir <input .....> on doit tapper $table1->addText(.....)
Je trouve ça plus chiant que pratique moi, enfin  :o


---------------
PIGs_DarkSith a parlé !
Reply

Marsh Posté le 12-12-2007 à 15:09:25    

PIGs_DarkSith a écrit :

Citation :

Je suppose que c'est juste une boucle de test ? Parce que sinon, grosse faille de sécurité là


Oui c'est un boucle de test en effet.
Par contre je comprend pas trop en quoi c'est un faille de sécurité  :??:  


 
Parce qu'un utilisateur mal intentionné peut très simplement faire en sorte qu'une de tes $_POST['reponse'] contienne un truc du style <script type="text/javascript">pleins_de_choses_pas_belles();</script> (par exemple).


Message édité par sielfried le 12-12-2007 à 15:09:53

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 12-12-2007 à 15:11:34    

Ouai enfin encore faut-il que ces données soient ressorties à d'autres utilisateurs. Parce qu'avec ce simple code, une personne mal intentionnée n'ira pas bien loin!


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 12-12-2007 à 15:48:52    

Je suppose, mais ça reste une très mauvaise idée en règle générale, donc autant l'éviter tout le temps.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed