Probleme de formulaires PHP

Probleme de formulaires PHP - PHP - Programmation

Marsh Posté le 30-03-2009 à 22:34:40    

Bonsoir
j'ai un souci de PHP.
J'essaye de coder un système de tests, ou encore de sondage, mais ça ne fonctionne pas.
Après la question 2, ça me renvoie directement au résultat, en sachant que $resultat vaut $q2...
Je ne comprends pas, j'essaye déjà depuis cet aprèm..
 
Pourriez-vous éclairer ma lanterne? :)
 
Voila le code :
 

Code :
  1. <?php
  2. if (isset($_POST['q1'])){
  3. $q1=$_POST['q1'];
  4. }
  5. if (isset($_POST['q2'])){
  6. $q2=$_POST['q2'];
  7. }
  8. if (isset($_POST['q3'])){
  9. $q3=$_POST['q3'];
  10. }
  11. if (isset($_POST['q4'])){
  12. $q4=$_POST['q4'];
  13. }
  14. if (isset($_POST['q5'])){
  15. $q5=$_POST['q5'];
  16. }
  17. if ($q1=="" && $q2=="" && $q3=="" && $q4=="" && $q5=="" ){
  18. echo '
  19. <form action="tests.php" method="post">
  20. <input type="radio" name="q1" value="1">Oui<br/>
  21. <input type="radio" name="q1" value="3">Non<br/>
  22. <input type="radio" name="q1" value="5">Sans avis<br/>
  23. <input type="submit" value="Valider">
  24. </form>';
  25. }
  26. else if($q1!="" ){
  27. echo '
  28. <form action="tests.php" method="post">
  29. <input type="radio" name="q2" value="1">Oui<br/>
  30. <input type="radio" name="q2" value="3">Non<br/>
  31. <input type="radio" name="q2" value="5">Sans avis<br/>
  32. <input type="submit" value="Valider">
  33. </form>';
  34. }
  35. else if($q1!="" && $q2 !="" ){
  36. echo '
  37. <form action="tests.php" method="post">
  38. <input type="radio" name="q3" value="1">Oui<br/>
  39. <input type="radio" name="q3" value="3">Non<br/>
  40. <input type="radio" name="q3" value="5">Sans avis<br/>
  41. <input type="submit" value="Valider">
  42. </form>';
  43. }
  44. else if($q1!="" && $q2 != "" && $q3!="" ){
  45. echo '
  46. <form action="tests.php" method="post">
  47. <input type="radio" name="q4" value="1">Oui<br/>
  48. <input type="radio" name="q4" value="3">Non<br/>
  49. <input type="radio" name="q4" value="5">Sans avis<br/>
  50. <input type="submit" value="Valider">
  51. </form>';
  52. }
  53. else if($q1!="" && $q2 !="" && $q3 != "" && $q4!="" ){
  54. echo '
  55. <form action="tests.php" method="post">
  56. <input type="radio" name="q5" value="1">Oui<br/>
  57. <input type="radio" name="q5" value="3">Non<br/>
  58. <input type="radio" name="q5" value="5">Sans avis<br/>
  59. <input type="submit" value="Valider">
  60. </form>';
  61. }
  62. else{
  63. $resultat = $q1 + $q2 + $q3 + $q4 + $q5 ;
  64. echo $resultat ;
  65. }
  66. ?>


 
 
 
Merci d'avance.


Message édité par Giniii le 31-03-2009 à 08:04:53

---------------
Ceci n'est pas une signature.
Reply

Marsh Posté le 30-03-2009 à 22:34:40   

Reply

Marsh Posté le 31-03-2009 à 01:01:13    

1/ un titre plus explicite svp
2/ tu n'initialises pas tes variables. Un petit error_reporting  =  E_ALL | E_STRICT dans php.ini te ferait le plus grand bien.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 31-03-2009 à 02:54:03    

D'une page à l'autre tu ne retransmets pas les réponses des anciens formulaires. $q1 et $q2 ne peuvent donc pas exister en même temps.

Code :
  1. $q1!="" && $q2!=""

et les autres tests du genre sont donc toujours égal à 'false'.

Reply

Marsh Posté le 31-03-2009 à 08:05:38    

drasche : Pour le titre c'est fait.
omega 2 : merci j'suis pas doué sur ce coup je vais tester :o


---------------
Ceci n'est pas une signature.
Reply

Marsh Posté le 31-03-2009 à 08:34:55    

Waou  :ange: ça marche!
 
Merci à vous :) :)


Message édité par Giniii le 31-03-2009 à 09:08:20

---------------
Ceci n'est pas une signature.
Reply

Marsh Posté le 31-03-2009 à 09:55:30    

Pour rester dans la critique constructive...
 
Essaye d'imaginer comment tu vas faire quand tu voudras un test/questionnaire avec vingt questions/réponses  :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed