Page 1 sur 1

Problème de tableau avec formulaire.

Posté : 22 juin 2005, 14:05
par pinpin
Alors j'ai un petit questionnaire avec 3 réponses cochables (possibilité de cocher les trois), puis j'exploite les résultats.
Donc voici le code en question que j'ai simplifié pour cerner uniquement le problème :

[php<html><body>
<form method=post action="<?php echo $_SERVER['PHP_SELF']; ?>">

<input type="checkbox" name="Q6[]" value="1">Suggestion 1<br>
<input type="checkbox" name="Q6[]" value="2">Suggestion 2 <br>
<input type="checkbox" name="Q6[]" value="3">Suggestion 3 <br>

<input type="submit" name="Submit" value="Envoyer">

</form>

<?php

for ($i = 0; $i < count($Q6); $i++) {echo $Q6[$i] . "<br>" ;}
//Sert à vérifier si les cases ont bien était coché, et si chaque information a bien était enregistré dans la case du tableau

$host = "****";
$user = "****";
$pass = "****";
$bdd = "****";

@mysql_connect($host, $user, $pass) or die("Impossible de se connecter à la base de données");
@mysql_select_db($bdd) or die("Impossible de se connecter à la base de données");

if ( $Q6[0] == 1 )
{
echo "Je suis dans Q6[0] == 1 <br>";
}

if ( $Q6[1] == 2 )
{
echo "Je suis dans Q6[1] == 2 <br>";
}

if ( $Q6[2] == 3 )
{
echo "Je suis dans Q6[2] == 3 <br>";
}

mysql_close();
?>
</html></body>
</html></body> [/php]

Puis je fais quelques tests:
Si tout est coché :

Code : Tout sélectionner

1 2 3 Je suis dans Q6[0] == 1 Je suis dans Q6[1] == 2 Je suis dans Q6[2] == 3
Donc pas de problème j'ai accédé à tout.

Si je coche rien que le premier :

Code : Tout sélectionner

1 Je suis dans Q6[0] == 1
Toujours aucun problème sa affiche les bons trucs

Si je coche le deuxième ou troisième, voir les deux : Donc il accède pas au deux autres IF, ce qui veut dire qu'il y a un problème.

Si je coche le premier et deuxième :

Code : Tout sélectionner

1 2 Je suis dans Q6[0] == 1 Je suis dans Q6[1] == 2
Aucun problème

Si je coche le premier et troisième :

Code : Tout sélectionner

1 3 Je suis dans Q6[0] == 1
Il m'affiche pas les infos du trois alors qu'il a bien était coché

Voila j'en conclu que les informations s'affichent uniquement si les informations de la case précédente se sont affichés.

Quelqu'un à t'il une solution à mon probème ?
merci

Re: Problème de tableau avec formulaire.

Posté : 22 juin 2005, 15:08
par gwendal

<input type="checkbox" name="Q6[]" value="1">Suggestion 1<br>
<input type="checkbox" name="Q6[]" value="2">Suggestion 2 <br>
<input type="checkbox" name="Q6[]" value="3">Suggestion 3 <br>

if ( $Q6[0] == 1 )
{
echo "Je suis dans Q6[0] == 1 <br>";
}

if ( $Q6[1] == 2 )
{
echo "Je suis dans Q6[1] == 2 <br>";
}

if ( $Q6[2] == 3 )
{
echo "Je suis dans Q6[2] == 3 <br>";
}
Il y a un principe que tu n'a pas compris . Quand tu coche la case deux, il va pas automatiquement dans Q6[1], les valeurs sont rentrées dans l'ordre de coche donc
si tu coche le 1 et le 2
Q6[0] et Q6[1] comporte une valeur soit 1 et 2
Si tu conche 1 et 3
Q6[0] et Q6[1] comporte une valeur soit 1 et 3
si tu coche 3 uniquement
Q6[0] comporte une valeur soit 3

pour pouvoir connaitre les données entrées tu dois faire un while sur la tableau du type

while (list(,$valeur)=each($Q6)) /* Lecture du tableau */
{

if ( $valeur == 1 )
{
echo "Je suis dans Q6[0] == 1 <br>";
}

if ( $valeur == 2 )
{
echo "Je suis dans Q6[1] == 2 <br>";
}

if ( $valeur == 3 )
{
echo "Je suis dans Q6[2] == 3 <br>";
}



}

Posté : 22 juin 2005, 15:18
par pinpin
Effectivement je viens de comprendre mon erreur et j'ai une résolution toute simple :
<input type="checkbox" name="Q6[0]" value="1">Suggestion 1<br> 
<input type="checkbox" name="Q6[1]" value="2">Suggestion 2 <br> 
<input type="checkbox" name="Q6[2]" value="3">Suggestion 3 <br>
j'ai pas encore essayé mais je pense que sa marche ;)
Merci beaucoup gwendal :)

Posté : 22 juin 2005, 15:22
par gwendal
Effectivement je viens de comprendre mon erreur et j'ai une résolution toute simple :
<input type="checkbox" name="Q6[0]" value="1">Suggestion 1<br> 
<input type="checkbox" name="Q6[1]" value="2">Suggestion 2 <br> 
<input type="checkbox" name="Q6[2]" value="3">Suggestion 3 <br>
j'ai pas encore essayé mais je pense que sa marche ;)
Merci beaucoup gwendal :)
Non ca ne marche pas, il faut comprendre que tu n'utilise pas du javascript la Q6 et une composante HTML, je me suis dailleur toujours étonné de cette syntaxe

Posté : 22 juin 2005, 15:29
par pinpin
Heu je viens te tester sa marche dans mon script :s
Je ferais pas mal de test plus tard car j'aurais fait tout l'ensemble, mais bon je penseq ue sa posera de bug car juste sur cet exemple cela marche parfaitement :)

Posté : 22 juin 2005, 15:38
par gwendal
Tien bizarre je me rappel avoir fais un test de ce type il y a quelques temps de cela et ca marchait pas.

Bon soit il fait trop chaud ou je perd la tête

enfin bon le principal ta réglé ton problème :)