probleme de checkbox je craque

koka
Invité n'ayant pas de compte PHPfrance

12 avr. 2005, 15:36

Bonjour a tous :o)

J'ai de petit problème avec les checkbox.
le probleme n'est pas comment integrer les cases cochées et les stockes dans ma base de données, mais apres recuperation, comment ne cocher que celle qui avait été precedement cocher ( je sais c'est un peu compliqué :o) , mais ce me saoul depuis plusieurs jours.

En faite je crée un formulaire de modification et je voudrais pouvoir récupere toutes les données de ma Bdd tels qu'elle existe

merci de m'aider j'arrive pas :o)

ViPHP
ViPHP | 2144 Messages

12 avr. 2005, 15:41

Il faudrai qu'on puisse voir le code de ton formulaire et la structure de la table où tu stockes ces infos, sinon on va pas pouvoir t'aider....

Invité
Invité n'ayant pas de compte PHPfrance

12 avr. 2005, 16:09

ok désolé voici ce que j'ai fait

Code : Tout sélectionner

<? // information pour la connection à le DB $host = xxxxxxx; $user = xxxxxxxxxx; $pass = xxxxxxxxxx; $db = xxxxxxxxxxxxxx; // connection à la DB $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); // on créer la requete SQL et on l'envoie $sql = "SELECT id,nom,prenom,montage1,montage2,montage3 FROM clients_tbl WHERE id='$id'"; // on envoie la requete $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $row=mysql_fetch_array($req); $id=$row['id']; $nom=$row['nom']; $prenom=$row['prenom']; $montage1=$row['montage1']; $montage2=$row['montage2']; $montage3=$row['montage3']; echo '<form name="formulaire_modification" method="post" action="resultat_modif.php4">'; echo '<table bgcolor="#FFFFFF" border=0 CELLPADDING=0 CELLSPACING=0 BORDERCOLOR="#000000">'."\n"; echo '<tr>'; echo '<td bgcolor="#ffffff" align="right" width=130><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Référence :</B></FONT></td>'; echo '<td width=20 height=30>&nbsp;</td>'; echo '<td width=400 height=30><input type="text" name="id" size="50" value="'.$id.'"></td>'; echo '</tr>'."\n"; echo '<tr>'; echo '<td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Nom :</B></FONT></td>'; echo '<td height=30>&nbsp;</td>'; echo '<td height=30><input type="text" name="nom" size="50" value="'.$nom.'"></td>'; echo '</tr>'."\n"; echo '<tr>'; echo '<td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Prénom :</B></FONT></td>'; echo '<td height=30>&nbsp;</td>'; echo '<td height=30><input type="text" name="prenom" size="50" value="'.$prenom.'"></td>'; echo '</tr>'."\n"; echo '<tr>'; echo '<td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Montage :</B></FONT></td>'; echo '<td height=30>&nbsp;</td>'; echo '<td height=30> <input type="checkbox" name="montage1" <?php if (isset($_POST[kit]) && !isset($_POST[kit])) echo checked="checked" ; ?> Kit <input type="checkbox" name="montage2" <?php if (isset($_POST[supperviseur]) && !isset($_POST[supperviseur])) echo checked="checked" ; ?> Supperviseur <input type="checkbox" name="montage3" <?php if (isset($_POST[complet]) && !isset($_POST[complet])) echo checked="checked" ; ?> Complet'; echo '</tr>'; echo '<tr>'; echo '<td>&nbsp;</td>'; echo '<td>&nbsp;</td>'; echo '<td width=80 height=30><input type="submit" value="Modifier"></td>'; echo '</tr>'."\n"; echo '</table>'."\n"; echo '</form>'; // on ferme la connexion à mysql mysql_close(); ?>
voila pour expliquer j'ai créer un formulaire avec deux champs "nom et prenom" et trois checkbox que j'ai appellé
montage1 qui donne comme valeur "kit" lorsqu'il est coché
montage2 qui donne comme valeur "supperviseur" lorsqu'il est coché
montage3 qui donne comme valeur "complet" lorsqu'il est coché

dans ma Bdd mysql il il a 5 champs nom,prenom,montage1,montage2,montage3

Je suis novice je suis partie sur quelque chose d'aprés une première aide mais ca ne fonctionne pas si vous avez une autre solution?

merci beaucoup j'ai vraiment besoin d'aide

Invité
Invité n'ayant pas de compte PHPfrance

12 avr. 2005, 16:10

ok désolé voici ce que j'ai fait

Code : Tout sélectionner

<? // information pour la connection à le DB $host = xxxxxxx; $user = xxxxxxxxxx; $pass = xxxxxxxxxx; $db = xxxxxxxxxxxxxx; // connection à la DB $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); // on créer la requete SQL et on l'envoie $sql = "SELECT id,nom,prenom,montage1,montage2,montage3 FROM clients_tbl WHERE id='$id'"; // on envoie la requete $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $row=mysql_fetch_array($req); $id=$row['id']; $nom=$row['nom']; $prenom=$row['prenom']; $montage1=$row['montage1']; $montage2=$row['montage2']; $montage3=$row['montage3']; echo '<form name="formulaire_modification" method="post" action="resultat_modif.php4">'; echo '<table bgcolor="#FFFFFF" border=0 CELLPADDING=0 CELLSPACING=0 BORDERCOLOR="#000000">'."\n"; echo '<tr>'; echo '<td bgcolor="#ffffff" align="right" width=130><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Référence :</B></FONT></td>'; echo '<td width=20 height=30>&nbsp;</td>'; echo '<td width=400 height=30><input type="text" name="id" size="50" value="'.$id.'"></td>'; echo '</tr>'."\n"; echo '<tr>'; echo '<td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Nom :</B></FONT></td>'; echo '<td height=30>&nbsp;</td>'; echo '<td height=30><input type="text" name="nom" size="50" value="'.$nom.'"></td>'; echo '</tr>'."\n"; echo '<tr>'; echo '<td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Prénom :</B></FONT></td>'; echo '<td height=30>&nbsp;</td>'; echo '<td height=30><input type="text" name="prenom" size="50" value="'.$prenom.'"></td>'; echo '</tr>'."\n"; echo '<tr>'; echo '<td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Montage :</B></FONT></td>'; echo '<td height=30>&nbsp;</td>'; echo '<td height=30> <input type="checkbox" name="montage1" <?php if (isset($_POST[kit]) && !isset($_POST[kit])) echo checked="checked" ; ?> Kit <input type="checkbox" name="montage2" <?php if (isset($_POST[supperviseur]) && !isset($_POST[supperviseur])) echo checked="checked" ; ?> Supperviseur <input type="checkbox" name="montage3" <?php if (isset($_POST[complet]) && !isset($_POST[complet])) echo checked="checked" ; ?> Complet'; echo '</tr>'; echo '<tr>'; echo '<td>&nbsp;</td>'; echo '<td>&nbsp;</td>'; echo '<td width=80 height=30><input type="submit" value="Modifier"></td>'; echo '</tr>'."\n"; echo '</table>'."\n"; echo '</form>'; // on ferme la connexion à mysql mysql_close(); ?>
voila pour expliquer j'ai créer un formulaire avec deux champs "nom et prenom" et trois checkbox que j'ai appellé
montage1 qui donne comme valeur "kit" lorsqu'il est coché
montage2 qui donne comme valeur "supperviseur" lorsqu'il est coché
montage3 qui donne comme valeur "complet" lorsqu'il est coché

dans ma Bdd mysql il il a 5 champs nom,prenom,montage1,montage2,montage3

Je suis novice je suis partie sur quelque chose d'aprés une première aide mais ca ne fonctionne pas si vous avez une autre solution?

merci beaucoup j'ai vraiment besoin d'aide

ViPHP
ViPHP | 2144 Messages

12 avr. 2005, 16:13

Je ne comprends pas pourquoi tu mélanges des variables issues de la Db avec des variables issues d'une requête post ( donc d'un formulaire )

Invité
Invité n'ayant pas de compte PHPfrance

12 avr. 2005, 17:14

Houps ca devient compliqué,

je ne comprend pas ce que tu veux dire?

En faite je voudrait reprendre le valeur de ma Bdd pour les faire apparaitre dans un nouveau formulaire de modification

En gros voici ce que j'aimerais réussir a faire

étape 1 : je remplis un formulaire 1 d'inscription avec nom prenom et les 3 checkbox

étape 2 j'envoie les données dans ma base de données

jusque la trop facile :-) j'y arrive

étape 3: j'ouvre un questionnaire de modification avec les données que j'avais entrée en étape 1, comme ca je sais ce que les fiches contiennent et je peux modifier sans me tromper.

he la PROBLEMEEEEEEEE, impossible d'afficher dans le questionnaire de modification les checkbox coché ou vide selon ce que j'avais choisi en étape 1.

je ne sais pas si je me suis bien expliqué mais j'espere car je désespere a force

En ce qui concerne le mélange que je fais avec des variables issues de la Db avec des variables issues d'une requête post je ne sais pas non plus pourquoi je le fait :cry: , comme je n'y connais pas grand chose en php je tente des chose selon des aides que l'on me donne mais le résultat et pas trés beau

merci du temps que tu me concacre

Invité
Invité n'ayant pas de compte PHPfrance

12 avr. 2005, 17:24

Voici le code corrigé

Code : Tout sélectionner

<?// on créer la requete SQL et on l'envoie $sql = "SELECT id,nom,prenom,montage1,montage2,montage3 FROM clients_tbl WHERE id='$id'"; // on envoie la requete $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $row=mysql_fetch_array($req); ?> <form name="formulaire_modification" method="post" action="resultat_modif.php4"> <table bgcolor="#FFFFFF" border=0 CELLPADDING=0 CELLSPACING=0 BORDERCOLOR="#000000"> <tr> <td bgcolor="#ffffff" align="right" width=130><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Référence :</B></FONT></td> <td width=20 height=30>&nbsp;</td> <td width=400 height=30><input type="text" name="id" size="50" value=<? echo $row["id"] ?> ></td> </tr> <tr> <td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Nom :</B></FONT></td> <td height=30>&nbsp;</td> <td height=30><input type="text" name="nom" size="50" value=<? echo "$row["row"] ?> > </td></tr> <tr> <td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Prénom :</B></FONT></td> <td height=30>&nbsp;</td> <td height=30><input type="text" name="prenom" size="50" value=<? echo $row["prenom"] ?> ></td> </tr> <tr> <td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Montage :</B></FONT></td> <td height=30>&nbsp;</td> <td height=30> <input type="checkbox" name="montage1" <? if (isset($_POST[kit]) && !isset($_POST[kit])) echo checked="checked" ; ?> Kit <input type="checkbox" name="montage2" <? if (isset($_POST[supperviseur]) && !isset($_POST[supperviseur])) echo checked="checked" ; ?> Supperviseur <input type="checkbox" name="montage3" <? if (isset($_POST[complet]) && !isset($_POST[complet])) echo checked="checked" ; ?> Complet</td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> '<td width=80 height=30><input type="submit" value="Modifier"></td></tr> </table> </form> // on ferme la connexion à mysql mysql_close(); ?>
en cas de prblm tu me contacter sur [email protected]
our [email protected]

Invité
Invité n'ayant pas de compte PHPfrance

12 avr. 2005, 17:26

En fait t'est pas obliger de mettre
$id=$row["id"]
$prenom=$row["prenom"]
....
après la connexion a ala base de donnée et le lancement de la requete et l'extraction des résultats tu peut l'utiliser directement et n'oublie pas que tu peut implémenter du code PHP dans du Code HTML :)

Invité
Invité n'ayant pas de compte PHPfrance

12 avr. 2005, 17:39

merci pour ton aide

je vais essayer de suite voir si ca fonctionne
je vous tient au courant

Merci

Invité
Invité n'ayant pas de compte PHPfrance

12 avr. 2005, 17:59

J'y ai cru mais il m'affiche un message d'erreur sur cette ligne

Code : Tout sélectionner

<input type="checkbox" name="montage1" <? if (isset($_POST[kit]) && !isset($_POST[kit])) echo checked="checked" ; ?> Kit
voici l'erreur:
Parse error: parse error, unexpected '=', expecting ',' or ';' in /home/clients/xxxxxxxxxx.com/http/bdd/formulaire_modif.php4 on line 99
j'ai fait quelques modif car il m'indiquait des erreurs sur le premières lignes
voici mon code en entier mais avec les modifs pour ne plus qu'il affiche les messages erreurs

Code : Tout sélectionner

<? // information pour la connection à le DB $host = 'xxxxx'; $user = 'xxxxx'; $pass = 'xxxxx'; $db = 'xxxxx'; // connection à la DB $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); //on créer la requete SQL et on l'envoie $sql = "SELECT id,nom,prenom,montage1,montage2,montage3 FROM clients_tbl WHERE id='$id'"; // on envoie la requete $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $row=mysql_fetch_array($req); ?> <form name="formulaire_modification" method="post" action="resultat_modif.php4"> <table bgcolor="#FFFFFF" border=0 CELLPADDING=0 CELLSPACING=0 BORDERCOLOR="#000000"> <tr> <td bgcolor="#ffffff" align="right" width=130><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Référence :</B></FONT></td> <td width=20 height=30>&nbsp;</td> <td width=400 height=30><input type="text" name="id" size="50" value=<? echo $row["id"] ?> ></td> </tr> <tr> <td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Nom :</B></FONT></td> <td height=30>&nbsp;</td> <td height=30><input type="text" name="nom" size="50" value=<? echo $row["nom"] ?> ></td></tr> <tr> <td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Prénom :</B></FONT></td> <td height=30>&nbsp;</td> <td height=30><input type="text" name="prenom" size="50" value=<? echo $row["prenom"] ?> ></td> </tr> <tr> <td bgcolor="#ffffff" align="right"><FONT FACE="Verdana" COLOR="#6190F1" SIZE=2><B>Montage :</B></FONT></td> <td height=30>&nbsp;</td> <td height=30> <input type="checkbox" name="montage1" <? if (isset($_POST[kit]) && !isset($_POST[kit])) echo checked="checked" ; ?> Kit <input type="checkbox" name="montage2" <? if (isset($_POST[supperviseur]) && !isset($_POST[supperviseur])) echo checked="checked" ; ?> Supperviseur <input type="checkbox" name="montage3" <? if (isset($_POST[complet]) && !isset($_POST[complet])) echo checked="checked" ; ?> Complet</td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> '<td width=80 height=30><input type="submit" value="Modifier"></td></tr> </table> </form> // on ferme la connexion à mysql mysql_close(); ?>
merci vraiment beaucoup pour votre aide

Invité
Invité n'ayant pas de compte PHPfrance

12 avr. 2005, 18:26

ah oui désolé j'ai pas fait attention :oops:
enlève ça echo checked="checked"
met directement echo "checked"

Invité
Invité n'ayant pas de compte PHPfrance

12 avr. 2005, 18:40

bon on doit approcher la page s'affiche bien avec les trois checkbox,

le probleme c'est quelles sont toutes décoché même si je les ai coché dans le prmier forfulaire

:cry:

j'ai l'impression qu'il ne prend pas en compte le données de ma base de données???