Problème de tableau avec formulaire.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de tableau avec formulaire.

par gwendal » 22 juin 2005, 15:38

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 :)

par pinpin » 22 juin 2005, 15:29

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 :)

par gwendal » 22 juin 2005, 15:22

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

par pinpin » 22 juin 2005, 15:18

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 :)

Re: Problème de tableau avec formulaire.

par gwendal » 22 juin 2005, 15:08


<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>";
}



}

Problème de tableau avec formulaire.

par pinpin » 22 juin 2005, 14:05

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