Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][formularz]zapisanie zmiennej po dodaniu odpowiedzi
Forum PHP.pl > Forum > Przedszkole
regedarek
Witam, mam problem z moim skryptem, otóż skrypt wyświetla losowy obrazek z opisem, natomiast druga część to formularz, który po wpisaniu odpowiedzi ma porównać odpowiedz z opisem i dać tak lub nie, niestety mam problem z tym, że kiedy daje Odpowiedź strona się odświeża i ładuje się następny obrazek, nie wiem za bardzo po jakich frazach szukać pomocy.


  1.  
  2. <html>
  3. <head>
  4. </head>
  5. <body>
  6. <form action="index.php" method="post">
  7. <table border="0">
  8. <tr><td>odpowiedz</td><td><textarea input type="text" name="odpowiedz" rows="1" cols="20"></textarea></td><td></tr>
  9. <tr><td colspan="1"><input type="submit" value="Odpowiedź"></td></tr>
  10. </table>
  11. </form>
  12. </body>
  13. </html>
  14.  
  15. <?php
  16.  
  17.  
  18. // inicjujemy generator licz losowych
  19. srand((float)microtime()*1000000);
  20.  
  21. // tablica zawierajaca tablice z obrazkiem i opisem do niego
  22. $txt[] = array('textularia.jpg' => 'textularia');
  23. $txt[] = array('triloculina.jpg' => 'triloculina');
  24. $txt[] = array('turitella.jpg' => 'turitella');
  25. $txt[] = array('vermetus.jpg' => 'vermetus');
  26. $txt[] = array('zaphrentis.jpg' => 'zaphrentis');
  27.  
  28. // wybieramy losowy element z tablicy
  29. $txt_rand = $txt[array_rand($txt)];
  30.  
  31. // wyswietlamy obrazek razem z opisem
  32. foreach($txt_rand as $key => $value) {
  33. echo "<div align=\"center\"><img src=\"$key\" /><br />$value</div>";
  34. }
  35.  
  36. // sprawdzenie czy opis = odpowiedz
  37.  
  38. $odp=$_POST['odpowiedz'];
  39.  
  40. $a = $odp;
  41. $b = $value;
  42.  
  43. if ($a == $b)
  44. echo "Tak";
  45. else
  46. echo "Nie";
  47.  
  48.  
  49.  
  50. ?>
  51.  
webspy
moze dodaj sobie ukryty input i w value daj zmienna z kodem
potem porownaj odpowiedz z tym ukrytym inputem, tylko ten kod php z generowanym kodem daj przez formularzem

Ja zaczynam przygode z php ale takie rozwiazanie mi przyszlo do glowy
zordon
daj sobie losowanie obrazka i czytanie odpowiedzi w instrukcję if ... else :

  1.  
  2. if(isset($_POST['odpowiedz'])){ 
  3.  
  4. $odp=$_POST['odpowiedz'];
  5.  
  6. $a = $odp;
  7. $b = $value;
  8.  
  9. if ($a == $b)
  10. echo "Tak";
  11. else
  12. echo "Nie";
  13.  
  14.  
  15. }else{
  16.  
  17. //losowanie obrazka i wyswietlanie formularza
  18.  
  19. }
  20.  


Wtedy jesli uzytkownik wchodzi na stronę po raz pierwszy to nie ma zmiennej $_POST['odpowiedz'] i generuje mu się formularz z obrazkiem, a jesli przesle formularz to obrazek nie jest generowany tylko sprawdzana odpowiedz
regedarek
hmm, próbuję ale cały czas wyskakują mi błędy albo nie wyświetla obrazek, jeżeli można jakąś wskazówkę..
  1. <?
  2. // tablica zawierajaca tablice z obrazkiem i opisem do niego
  3. $txt[] = array('textularia.jpg' => 'textularia');
  4. $txt[] = array('triloculina.jpg' => 'triloculina');
  5. $txt[] = array('turitella.jpg' => 'turitella');
  6. $txt[] = array('vermetus.jpg' => 'vermetus');
  7. $txt[] = array('zaphrentis.jpg' => 'zaphrentis');
  8.  
  9. // wyswietlamy obrazek razem z opisem
  10. foreach($txt_rand as $key => $value) {
  11. echo "<div align=\"center\"><img src=\"$key\" /><br />$value</div>";
  12. }
  13. if(isset($_POST['odpowiedz'])){
  14.  
  15. $odp=$_POST['odpowiedz'];
  16.  
  17. $a = $odp;
  18. $b = $value;
  19.  
  20. if ($a == $b)
  21. echo "Tak";
  22. else
  23. echo "Nie";
  24.  
  25.  
  26. }else{
  27.  
  28. //losowanie obrazka i wyswietlanie formularza
  29.  
  30. // inicjujemy generator licz losowych
  31. srand((float)microtime()*1000000);
  32.  
  33. // wybieramy losowy element z tablicy
  34. $txt_rand = $txt[array_rand($txt)];
  35.  
  36. echo "<html>
  37. <head>
  38. </head>
  39. <body>
  40. <form action="index.php" method="post">
  41. <table border="0">
  42. <tr><td>odpowiedz</td><td><textarea input type="text" name="odpowiedz" rows="1" cols="20"></textarea></td><td></tr>
  43. <tr><td colspan="1"><input type="submit" value="Odpowiedź"></td></tr>
  44. </table>
  45. </form>
  46. </body>
  47. </html>"
  48. }
  49.  
  50. ?>


możesz jakoś to rozwinąć, nie moge znaleźć nic o ukrytym inpucie
zordon
Troszkę kiepsko szukałeś jeśli nie znalazłeś nic o ukrytych polach. no ale przecież są one ukryte... w google smile.gif

Tu masz działający skrypt:

  1. <?
  2.  
  3.  
  4. // tablica zawierajaca tablice z obrazkiem i opisem do niego
  5. $txt[] = array('textularia.jpg' => 'textularia');
  6. $txt[] = array('triloculina.jpg' => 'triloculina');
  7. $txt[] = array('turitella.jpg' => 'turitella');
  8. $txt[] = array('vermetus.jpg' => 'vermetus');
  9. $txt[] = array('zaphrentis.jpg' => 'zaphrentis');
  10.  
  11.  
  12. if(isset($_POST['odpowiedz']) && isset($_POST['value'])){
  13.  
  14. $odp=$_POST['odpowiedz'];
  15. $value = $_POST['value'];
  16.  
  17.  
  18. if ($odp == $value)
  19. echo "Tak";
  20. else
  21. echo "Nie";
  22.  
  23.  
  24. }else{
  25.  
  26. //losowanie obrazka i wyswietlanie formularza
  27.  
  28. // inicjujemy generator licz losowych
  29. srand((float)microtime()*1000000);
  30.  
  31. // wybieramy losowy element z tablicy
  32. $txt_rand = $txt[array_rand($txt)];
  33. // wyswietlamy obrazek razem z opisem
  34. foreach($txt_rand as $key => $value) {
  35. echo "<div align=\"center\"><img src=\"$key\" /><br />$value</div>";
  36. }
  37. ?>
  38.  
  39. <html>
  40. <head>
  41. </head>
  42. <body>
  43. <form action="index.php" method="post">
  44. <table border="0">
  45. <tr><td>odpowiedz</td><td><textarea input type="text" name="odpowiedz" rows="1" cols="20"></textarea></td><td></tr>
  46. <tr><td colspan="1"><input type="submit" value="Odpowiedź"></td></tr>
  47. </table>
  48. <input name="value" type="hidden" value="<?php echo $value; ?>" />
  49. </form>
  50. </body>
  51. </html>
  52.  
  53. <?php
  54.  
  55. }
  56.  
  57. ?>
regedarek
wow, naprawdę dziękuję za pomoc, teraz tylko muszę znaleźć sposób, żeby ten proces był powtarzany, bo po wciśnięciu przysisku pojawia się wynik Tak lub Nie a chciałbym, żeby pozazywał się kolejny obrazek i formularz.

A znalazłem o ukrytych formularzach tylko nie wiedziałem jak je zastosować ;]
zordon
To masz jeszcze na dokładkę:

  1. <?
  2.  
  3.  
  4. // tablica zawierajaca tablice z obrazkiem i opisem do niego
  5. $txt[] = array('textularia.jpg' => 'textularia');
  6. $txt[] = array('triloculina.jpg' => 'triloculina');
  7. $txt[] = array('turitella.jpg' => 'turitella');
  8. $txt[] = array('vermetus.jpg' => 'vermetus');
  9. $txt[] = array('zaphrentis.jpg' => 'zaphrentis');
  10.  
  11.  
  12. if(isset($_POST['odpowiedz']) && isset($_POST['value'])){
  13.  
  14. $odp=$_POST['odpowiedz'];
  15. $value = $_POST['value'];
  16.  
  17.  
  18. if ($odp == $value)
  19. echo "Tak";
  20. else
  21. echo "Nie";
  22.  
  23. }
  24.  
  25. //losowanie obrazka i wyswietlanie formularza
  26.  
  27. // inicjujemy generator licz losowych
  28. srand((float)microtime()*1000000);
  29.  
  30. // wybieramy losowy element z tablicy
  31. $txt_rand = $txt[array_rand($txt)];
  32. // wyswietlamy obrazek razem z opisem
  33. foreach($txt_rand as $key => $value) {
  34. echo "<div align=\"center\"><img src=\"$key\" /><br />$value</div>";
  35. }
  36. ?>
  37.  
  38. <html>
  39. <head>
  40. </head>
  41. <body>
  42. <form action="" method="post">
  43. <table border="0">
  44. <tr><td>odpowiedz</td><td><textarea input type="text" name="odpowiedz" rows="1" cols="20"></textarea></td><td></tr>
  45. <tr><td colspan="1"><input type="submit" value="Odpowiedź"></td></tr>
  46. </table>
  47. <input name="value" type="hidden" value="<?php echo $value; ?>" />
  48. </form>
  49. </body>
  50. </html>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.