Page 1 sur 1

Plusieurs valeurs à un champ de formulaire

Posté : 22 avr. 2005, 13:58
par GuillaumeB
Salut tout le monde

pour mon travail j'ai créé un espace membre (enfin j'ai réutilisé un script déjà créé).
A un moment il y a un formulaire d'inscription ou on rentre diverses valeurs. L'une des valeurs est la suivante : on doit selectionner un ou plusieurs corps d'etats à l'aide de cases à cocher :
[code]<input name="type_de_travaux" type="checkbox" id="genie_civil" value="G&eacute;nie civil">
G&eacute;nie civil<br>
<input name="type_de_travaux" type="checkbox" id="maconnerie" value="Maconnerie">
Maconnerie<br>
<input name="type_de_travaux" type="checkbox" id="gros_oeuvre" value="Gros oeuvre">
Gros oeuvre<br>
<input name="type_de_travaux" type="checkbox" id="cloisonnements" value="Cloisonnements">
Cloisonnements<br>
<input name="type_de_travaux" type="checkbox" id="plafonds_suspendus" value="Plafonds suspendus">
Plafonds suspendus<br>
<input name="type_de_travaux" type="checkbox" id="revetement_sols" value="Rev&ecirc;tement de sols">
Rev&ecirc;tement de sols<br>
<input name="type_de_travaux" type="checkbox" id="revetement_murs" value="Rev&ecirc;tement de murs">
Rev&ecirc;tement de murs<br>
<input name="type_de_travaux" type="checkbox" id="peinture" value="Peinture">
Peinture<br>
<input name="type_de_travaux" type="checkbox" id="menuiserie" value="Menuiserie">
Menuiserie<br>
<input name="type_de_travaux" type="checkbox" id="climatisation" value="Climatisation">
Climatisation<br>
<input name="type_de_travaux" type="checkbox" id="electricit&eacute;" value="Electricit&eacute;">
Electricit&eacute;<br>
<input name="type_de_travaux" type="checkbox" id="reseaux_informatique" value="R&eacute;seaux informatiques">
R&eacute;seaux informatiques<br>
<input name="type_de_travaux" type="checkbox" id="reseaux_communication" value="Electricit&eacute;">
R&eacute;seaux
de communication [/code]
Et quand je veux récupérer les valeurs de ces cases, dans la page privée (à l'aide ce code : <? echo "$type_de_travaux"; ?> ça me met que la première valeur cochée.

Savez-vous comme remédier à ce pb ?

Merci beaucoup !

Guillaume

Posté : 22 avr. 2005, 14:02
par Cyrano
Yes :
<input name="type_de_travaux[]"
Comme ça, tu auras tous les résultas dans un tableau indexé :)

Posté : 22 avr. 2005, 16:16
par GuillaumeB
merci beaucoup de ta réponse mais j'ai une erreur lors de la génération de la page :
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /home/smfm/www/espace_fournisseur/adduser.php3 on line 76


La ligne 76 contient :
$requete=mysql_db_query($sql_bdd,"insert into membre values ($idnew,\"$id\",\"$pseudo_membre\",\"$passe_membre\",\"$raison_sociale\",\"$adresse\",\"$code_postal\",\"$ville\",\"$telephone\",\"$fax\",\"$email\",\"$siret\",\"$code_ape\",\"$rc\",\"$nom\",\"$prenom\",\"$mobile\",[b]\"$type_de_travaux\",[/b]\"$departement_intervention\")",$db_link) or die(mysql_error());

Posté : 22 avr. 2005, 17:20
par Cyrano
Il y a des mélanges dans la chaine:
VOici comment je l'aurais écrite :
$requete=mysql_db_query($sql_bdd,"insert into membre values (". $idnew .",". $id .",'". $pseudo_membre ."','". $passe_membre ."','". $raison_sociale ."','". $adresse ."','". $code_postal ."','". $ville ."','". $telephone ."','". $fax ."','". $email ."','". $siret ."','". $code_ape ."','". $rc ."','". $nom ."','". $prenom ."','". $mobile ."','". $type_de_travaux ."','". $departement_intervention .")",$db_link) or die(mysql_error());
Attention, l'utilisation de caractères d'échappement dans une requête SQL pour MySQL : les champs peuvent être encadrés d'apostrophes (') au lieux de guillemets (") ce qui ne viens pas nuire à la chaine PHP.
Il peut encore y avoir une autre erreur possible lors de l'enregistrement du coté de MySQL cette fois-ci : s'il y a des apostrophes dans les chaines de caractère auquel cas il faudra préparer les variables avant de les mettre dans la requête par l'utilisation de la fonction addslashes().

Posté : 22 avr. 2005, 17:38
par GuillaumeB
merci beaucoup de ton aide précieuse, je verrai ça se soir là j'ai la testa qui va exploser !

en tout cas c'est gentil d'avoir pris du temps pour me répondre :)