Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Pętla for wykonująca się po evencie [rozwiązane]

Napisany przez: Madlova 2.10.2012, 15:04:50

Witam! Chcę zrobić coś takiego: użytkownik wpisuje w Polę liczbę, następnie zatwierdza Dalej. System ma sprawdzać, czy użytkownik poprawnie wpisuje liczby od np 100 do 90. Mój kod niestety nie działa, a męczę go już dłuższy czas:

CODE
for($licznik=100;$licznik>89;$licznik--){
if(isset($_POST['dalej'])){
if($licznik==$_POST['wpisz']){
echo "Ok.".$licznik;
}

else{
echo "nie.".$licznik;
break;
}
}
}


Wynik kodu to Ok.100nie.99. Nie bardzo wiem, jak zrobić, żeby pętla po 1 wykonaniu czekała, aż użytkownik znów naciśnie dalej. Może ktoś coś podpowie?smile.gif

Napisany przez: darko 2.10.2012, 18:04:08

  1. $min = 90;
  2. $max = 100;
  3.  
  4. $valid = ($_POST['wpisz'] >= $min && $_POST['wpisz'] <= $max) ? true : false;
  5. if($valid)
  6. {
  7. // poprawna, w przedziale
  8. }
  9. else
  10. {
  11. // niepoprawna
  12. }

Napisany przez: Madlova 2.10.2012, 18:33:26

Kurde, teraz czytam swój post to faktycznie niezrozumiale to ujęłam, sorki. Chodzi mi o to, że program ma sprawdzać, czy użytkownik poprawnie liczy (odlicza) od zadanej liczby w dół. Np, wpisuje 100, dalej, 99, dalej, i tak do 90. Jeśli źle wpisze liczbę, np da 100, 98, to wyrzuci błąd i każe liczyć od nowa. Mój kod generalnie wykonuje ok pierwszego fora, po czym niestety automatycznie zaczyna drugiego (a chciałabym żeby zaczynał go dopiero po kolejnym "Dalej"), ale że tym razem licznik ustawił się już na liczbę o 1 mniejszą, toteż wchodzi w else'a i kończy działanie. I nie wiem co z tym fantem:(

Napisany przez: darko 3.10.2012, 01:23:54

Jakoś nie zajarzyłem. Zrobiłbym to na sesji:

  1. http://www.php.net/session_start();
  2. if(http://www.php.net/isset($_POST['dalej']))
  3. {
  4. $start = 100;
  5. $_SESSION['licznik'] = http://www.php.net/isset($_SESSION['licznik']) ? ( $_SESSION['licznik'] -1 ) : $start;
  6. if($_POST['wpisz'] == $_SESSION['licznik'])
  7. {
  8. http://www.php.net/echo 'ok';
  9. }
  10. else
  11. {
  12. $_SESSION['licznik'] = $start;
  13. http://www.php.net/echo 'nie';
  14. }
  15. }

Napisany przez: Madlova 3.10.2012, 14:44:44

Dziękuję ślicznie, teraz działa.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)