Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] problem z dzialaniem skryptu
Marnius
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 1.06.2010

Ostrzeżenie: (0%)
-----


Witam, mam problem z działaniem skryptu, nie ogarniam pewnej rzeczy. Zaznaczam ze dopiero się uczę wiec proszę o dużo wyrozumiałości. Działanie tego skryptu polega na tym że "user" tworzy pytania, zaznacza prawidłowe odpowiedzi, następnie wyświetlają się te pytania i odpowiedzi do zaznaczenia, na samym końcu są liczone punkty. Wygląda to mniej więcej tak:

Index:

  1. <html>
  2. <body>
  3.  
  4.  
  5. <form action="index.php" method="post" >
  6. Iloćś Pytań <input type="text" name="ilosc_pytan" value="" /> </br>
  7.  
  8. Ilość odpowiedzi na pytanie: <select name="ilosc_odp">
  9. <option>2</option> <!-- Formularz -->
  10. <option>4</option>
  11. </select> </br>
  12. <input type="submit" value="Prześlij" />
  13. </form>
  14. <form action="form.php" method="post" >
  15. <?php
  16. $pytania= $_POST['ilosc_pytan']; // przypisywanie wartosci pol formularza do zmiennych
  17. $odpowiedzi= $_POST['ilosc_odp'];
  18. $abcd[1]= 'a. ';
  19. $abcd[2]= 'b. ';
  20. $abcd[3]= 'c. '; // tablica z literami do odpowiedzi
  21. $abcd[4]= 'd. ';
  22. echo '<input type="hidden"'. 'name='. '"'. "ilosc_wszystkich_pytan". '"' . 'value='. '"'. "$pytania". '" />'; // liczba ilosci pytan
  23. echo '<input type="hidden"'. 'name='. '"'. "ilosc_wszystkich_odpowiedzi". '"' . 'value='. '"'. "$odpowiedzi". '" />';
  24.  
  25. // tworzenie pytan
  26. for($i=1; $i<= $pytania; $i++)
  27. {
  28. echo "Pytanie $i: ". '<input type="text"'. 'name='. '"'. "ilosc_pytan$i". '"' . 'value="" />'. '</br>'; //petla for ilosc pytan i odpow
  29.  
  30. // jesli sa tylko dwie odpowiedzi funkca if
  31. if($odpowiedzi==2)
  32. {
  33. echo "Podaj odpowiedzi, zaznacz takrze ktora jest poprawna: </br>";
  34. for($j=1; $j<=2; $j++)
  35. {
  36. echo '<input type="checkbox"'. 'name='. '"'. "odp_true1$i$j". '"' . 'value='. '"'. "$j". '" />'. " $abcd[$j]".
  37. '<input type="text"'. 'name='. '"'. "odpowiedzi$i$j". '"' . 'value="" />';
  38. }
  39. echo "</br></br>";
  40. }
  41. // jesli sa 4 odpowiedzi elseif
  42.  
  43. elseif($odpowiedzi==4)
  44. {
  45. echo "Podaj odpowiedzi, zaznacz takrze ktora jest poprawna: </br>";
  46.  
  47. for($j=1; $j<=4; $j++)
  48. {
  49. echo '<input type="checkbox"'. 'name='. '"'. "odp_true1$i$j". '"' . 'value='. '"'. "$j". '" />'. " $abcd[$j]".
  50. '<input type="text"'. 'name='. '"'. "odpowiedzi$i$j". '"' . 'value="" />'. '</br>';
  51. }
  52. echo "</br></br>";
  53. }
  54. }
  55. echo '<input type="submit" value="Wyślij" /> </form>';
  56.  
  57. // koniec skryptu pytajacego
  58. // poczatek skryptu obliczajacego i wyswietlajacego
  59. ?>
  60. </body>
  61. </html>



plik form:

  1. <html><body>
  2.  
  3. <form action="form.php" method="post" >
  4. <?php
  5.  
  6. $abcd[1]= 'a. ';
  7. $abcd[2]= 'b. ';
  8. $abcd[3]= 'c. '; // tablica z literami do odpowiedzi
  9. $abcd[4]= 'd. ';
  10.  
  11. $ile_pytan = $_POST['ilosc_wszystkich_pytan'];
  12. $ile_odpowiedzi= $_POST['ilosc_wszystkich_odpowiedzi'];
  13.  
  14. // przesyla informacje o ilosci pytan i odpowiedzi
  15.  
  16. echo '<input type="hidden"'. 'name='. '"'. "ilosc1". '"' . 'value='. '"'. "$ile_pytan". '" />';
  17. echo '<input type="hidden"'. 'name='. '"'. "ilosc2". '"' . 'value='. '"'. "$ile_odpowiedzi". '" />';
  18.  
  19. // ...
  20. // niewidoczne pola odpowiedzi
  21. for($rr=1; $rr<=$ile_pytan; $rr++)
  22. {
  23. // jesli 2 odpowiedzi
  24.  
  25. if($ile_odpowiedzi==2)
  26. {
  27. for($aa=1; $aa<=2; $aa++)
  28. {
  29. $true_index= $_POST["odp_true1$rr$aa"];
  30. echo '<input type="hidden"'. 'name='. '"'. "odp_true3$rr$aa". '"' . 'value='. '"'. "$true_index". '" /></br>';
  31. }
  32.  
  33. }
  34. // jesli 4 odp
  35.  
  36. if($ile_odpowiedzi==4)
  37. {
  38. for($aa=1; $aa<=4; $aa++)
  39. {
  40. $true_index= $_POST["odp_true1$rr$aa"];
  41. echo '<input type="hidden"'. 'name='. '"'. "odp_true3$rr$aa". '"' . 'value='. '"'. "$true_index". '" /></br>';
  42. }
  43. }
  44. }
  45. // ...
  46.  
  47. for($z=1; $z<=$ile_pytan; $z++)
  48. {
  49. $post= $_POST["ilosc_pytan$z"]; // petla wyswietla pytania
  50. echo "<b>$z. $post ?</b> </br>";
  51.  
  52. if($ile_odpowiedzi==2)
  53. {
  54. for($zz=1; $zz<=2; $zz++)
  55. {
  56. $odp= $_POST["odpowiedzi$z$zz"]; // jesli 2 odpowiedzi
  57.  
  58. echo '<input type="checkbox"'. 'name='. '"'. "odp_true2$z$zz". '"' . 'value='. '"'. "$zz". '" />'. "<b> $abcd[$zz]</b> $odp </br>";
  59. }
  60. }
  61. // ...
  62.  
  63. if($ile_odpowiedzi==4)
  64. {
  65. for($zz=1; $zz<=4; $zz++)
  66. {
  67. $odp= $_POST["odpowiedzi$z$zz"]; // jesli 4 odpowiedzi
  68.  
  69. echo '<input type="checkbox"'. 'name='. '"'. "odp_true2$z$zz". '"' . 'value='. '"'. "$zz". '" />'. "<b> $abcd[$zz]</b> $odp </br>";
  70. }
  71. }
  72. // ...
  73. }
  74. // koniec skryptu wyświetlania
  75. echo '<input type="submit" value="Wyslij" /></form>';
  76.  
  77. // skrypt liczacy
  78.  
  79. $ile_pytan1 = $_POST['ilosc1']; // przypisywanie ilosci pytan i odpowiedzi
  80. $ile_odpowiedzi2= $_POST['ilosc2'];
  81.  
  82. for($cc=1; $cc<=$ile_pytan1; $cc++)
  83. {
  84.  
  85. // jesli 2 odp
  86.  
  87. if($ile_odpowiedzi2==2)
  88. {
  89.  
  90. $true1= $_POST["odp_true3$cc". '1'];
  91. $true2= $_POST["odp_true3$cc". '2'];
  92.  
  93. $true11= $_POST["odp_true2$cc". '1'];
  94. $true22= $_POST["odp_true2$cc". '2'];
  95.  
  96.  
  97. echo $true1; ////////////////////////////////////////// o to chodzi
  98.  
  99. if($true1==$true11 and $true2==$true22 and $true1=!0 and $true11!=0 and $true2=!0 and $true22!=0)
  100. $ppp++;
  101. if($true1==$true11 and $true2==0 and $true22==0 and $true11!=0 and $true1!=0)
  102. $ppp++;
  103. if($true2==$true22 and $true1==0 and $true11==0 and $true22!=0 and $true2!=0)
  104. $ppp++;
  105. $punkty[$cc]= $ppp;
  106. echo $true1; /////////////////////////////////////////////// i to
  107. }
  108. }
  109. for($ww=1; $ww<=$ile_pytan1; $ww++)
  110. {
  111. $wynik=0;
  112. $wynik+=$punkty[$ww];
  113.  
  114. }
  115.  
  116. echo $wynik;
  117.  
  118. ?>
  119.  
  120.  
  121. </body></html>



Problem polega na tym iż nie wiem dlaczego echo $true1; "na górze" pokazuje dobrą wartość natomiast to poniżej złą. Chodzi mi o sytuacje gdy nie wybierze się żadnej odpowiedzi. Chciałbym aby ktoś mi wyjaśnił z kąd ta różnica i gdzie tkwi błąd, byłbym bardzo wdzięczny (IMG:style_emoticons/default/smile.gif)

Ten post edytował nospor 21.11.2012, 18:31:26
Powód edycji: [nospor]: poprawiam BBCODE poraz kolejny i ostatni...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Marnius
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 1.06.2010

Ostrzeżenie: (0%)
-----


Wielkie dzięki, te literówki wykończą człowieka (IMG:style_emoticons/default/wink.gif) sorki za to bbcode, ale też w tym samym momencie pewnie edytowałem posta co ty zmieniałeś. Nie udało się to na kolorowo zaznaczyć wiec go edytowałem. Jeszcze raz wielkie dzięki, Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 16:20