Rechercher : dans
Par :

PHP/ MySQL Plusieur Choix de Checkbox

Dernière réponse le 18 avr 2009 à 19:40:01 arfal, le 20 jan 2003 à 12:05:42 
 Signaler ce message aux modérateurs

Un bonjour a tout le monde,
un Merci a Bobinons pour son aide,

Là voilà j'ai fais une formulaire (questionnaire) que j'ai lié a une base de donné MySQL et la recuperation des donnés par PHP.

Sur les botton d'option (Checkbox), je veus récupérer une où plusieures options comme réponse a ma question.
Toutefois en donnat le nom a ces deux options
<INPUT TYPE="checkbox" NAME="Question1" VALUE="Choix1 " ID=Checkbox1>Choix1 <br>
<INPUT TYPE="checkbox" NAME="Question1" VALUE="Choix2" ID=Checkbox2>choix2 <br>

en selection par exemple les deux choix (1 et 2), je recupère seulement un seul choix dans ma base de donné.

Le champs relatif a cette question1 est defini comme suite :
CREATE TABLE survey_fr ( Question1 mediumtext NOT NULL)


Lrequete dans le fichier PHP est definie comme suite :

$Requete_SQL = "INSERT INTO survey_fr (Question1) VALUES VALUES ('" . $Question1 . "')";

Là je ne sais pas si mon erreurs provient du Name="" du HTML, ou l arequete dans le fichier PHP ou seulement il faut rectifier les caractéristiques du champ relatif a la question 1 ????

Merci infinimment

1

wiwi, le 20 jan 2003 à 12:38:58
  • +1

Bonsoir,

pour les choix multiple, il faut entrer un tableau dans le champ 'name' de ton html.
ici, ce sera donc name='question1[]'
ensuite, ton php va recuperer le tableau des resultats, il faudra donc boucler dessus pour entrer tes valeurs dans la base de donnees comme suit:

while($myquestion = array_shift($question1))
mysql_query("insert into mytable (mycolonne) VALUE ('".$myquestion."'");

en esperant que ca marche :)

Répondre à wiwi

8

 nassih, le 18 avr 2009 à 19:40:01

Merci ca marche bien

Répondre à nassih

2

arfal, le 20 jan 2003 à 19:20:41

J'ai bien fait ce que vous m'avez dit mais j'ai récupéré sur ma table seulement le mot Array.
Faut-il ajouter des arguments a name=question1[]???

Répondre à arfal

3

wiwi, le 21 jan 2003 à 03:53:34

Si tu affiches $question1, il te renverra bien Array( ca veut dire que c'est un tableau)
tu dois demander $question1[0], question1[1],...pour avoir les resultats.
au lieu de la boucle while, essaie un foreach ($question1 as $myquestion){} pour voir....

Répondre à wiwi

4

arfal, le 21 jan 2003 à 12:38:23
  • +1

Foreach ($question1 as $myquestion){}
Ne fonctionne pas.
Pour ce de $question1[0], question1[1] ... j'ai essayé les syntaxes suivantes :
1- while($myquestion = array_shift($question1[0], question1[2], question1[3], question1[4] ) )
mysql_query("insert into survey (question1) VALUE ('".$myquestion."'");
2- while($myquestion = array_shift($question1[0], $question1[2], $question1[3], $question1[4] ) )
mysql_query("insert into survey (question1) VALUE ('".$myquestion."'");
avec la différence entre les deux le caract`re $pour chaque option de la question1.
Sachant que ma table SQL est survey et la champ correpondant à la question1 est question1.

ça me donne toujour Array, alors faut-il construire une autre table (Array), lié au champ question1, où il faut ajouter une autre requête pour que ça me permet d'insérer au même temps dans le champs question1, plusieurs options ???
Merci infinimment pour l'aide.

Répondre à arfal

5

wiwimagique, le 21 jan 2003 à 13:01:48

C moi...quelqu'un a deja pris mon pseudo en membre :/

C bizarre, ca marche tres bien chez moi, foreach qussi bien que array_shift...

verifie bien que tu as ecris les variable de la meme maniere (majuscule), etc...

Répondre à wiwimagique

6

raziki, le 24 mai 2007 à 16:14:31

Bonjour,
j'ai fait comme vous avez dit, et ça marche.
le probleme se pose pas ici, le grand probleme que je rencontre moi, c'est lorsque j'actualise la page, le tableau 'checkbox[]' garde la dernière valeur.
meme avec unset($checkbox) ca marche pas.
voila le code :

<?php do { ?>

<div align="left">
<input type="checkbox" name='checkbox[]' value="<?php echo $row_Recordset1['email'];?>"/>
</div>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?></div>
------------------------------------------------------
..................le reste de code

<?php
if (isset($_POST['checkbox']) && isset($_POST['envoyer']) && ($test==1))
{
$temps=$_POST['checkbox'];
while ($monchoix = array_shift($temps))
{
mysql_query("insert into email (email) VALUE ('".$monchoix."')");
$test=0;
//echo $myquestion;
}
} else echo "Couchez vos Choix";

--------------------------------------------------------------------------

//le boutton envoyer

<input type="submit" name="envoyer" value="Envoyer" />

Répondre à raziki

7

raziki, le 24 mai 2007 à 16:31:48

Bonjour,
j'ai fait comme vous avez dit, et ça marche bien.
le probleme se pose pas ici, le grand probleme que je rencontre moi, c'est lorsque j'actualise la page, le tableau 'checkbox[]' garde la dernière valeur.
meme avec unset($checkbox) ca marche pas.
(comment initialiser la valeur de tableau a chaque envoi de formulaire)
voila le code :
<form id="form1" name="form1" method="post" action="mnt.php">
<?php do { ?>

<input type="checkbox" name='checkbox[]' value="<?php echo $row_Recordset1['email'];?>"/>

<?php } while ($row_Recordset1 = ysql_fetch_assoc($Recordset1)); ?>
------------------------------------------------------
..................le reste de code

<?php
if (isset($_POST['checkbox']) && isset($_POST['envoyer']))
{
$temps=$_POST['checkbox'];
while ($monchoix = array_shift($temps))
{
mysql_query("insert into email (email) VALUE ('".$monchoix."')");
}
} else echo "Couchez vos Choix";

--------------------------------------------------------------------------

//le boutton envoyer

<input type="submit" name="envoyer" value="Envoyer" />

</form>

Répondre à raziki