Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Średnia ocen ucznia
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
Szunaj85
Kilkanaście dni temu ten temat był już poruszany na forum. Kilka dni temu zauważyłem mały ubytek w tym kodzie. Myślałem, że sobie poradzę, ale nie wiem dlaczego jednak tak się nie stało. Mianowicie chodzi o taką sytuację kiedy użytkownik nie wpisze nic (żadnych liter, cyfr, znaków), a mimo to naciśnie "oblicz". W takiej sytuacji powinien wyskoczyć komunikat np. Nie wpisałeś ocen.
Próbowałem z funkcją empty(), itp oraz oczywiście echo jednak nie wyszło. rolleyes.gif Przy próbach z kodem gdy nic nie wpisałem, a nacisnąłem "oblicz" skrypt zachowywał się tak jak bym tylko odświeżył stronę.
Więcej o tym projekcie na http://forum.php.pl/index.php?showtopic=95...mp;#entry481496
  1. <?php
  2.  
  3. $liczby = $_GET['liczby'];
  4. if($_GET['liczby']){
  5.  
  6. $liczby = explode(',', $liczby);
  7. $wynik = 0;
  8. $ilosc = count($liczby);
  9. foreach($liczby as $liczba){
  10. if(is_numeric($liczba)){
  11. $wynik += $liczba;
  12. } else{
  13. $blad = true;
  14. }
  15. }
  16.  
  17. if($blad == true){
  18. echo "Błąd w wpisywanych danych";
  19. } else{
  20. $srednia = $wynik/$ilosc;
  21. echo 'Srednia: '.$srednia;
  22. }
  23.  
  24. } else{
  25. ?>
  26. <form method="GET">
  27. Podaj liczby po przecinku
  28. <input type="text" name="liczby">
  29. <br>
  30. <input type="submit" value="oblicz">
  31. </form>
  32.  
  33. <?php
  34. }
  35. ?>
kefirek
Proszę powinno byc dobrze
  1. <?php
  2. if (isset($_GET['oblicz'])) {
  3. $error = "";
  4. $liczby = $_GET['liczby'];
  5.  
  6.  
  7.  
  8. if ($liczby == "") {
  9. $error .= "<span class='alt'>Wpisz liczby</span><br>";
  10. }
  11.  
  12. if (!$error) {
  13.  
  14. $liczby = explode(',', $liczby);
  15. $ilosc = count($liczby);
  16. foreach($liczby as $liczba){
  17. if(is_numeric($liczba)){$wynik += $liczba;
  18. } 
  19. }
  20.  
  21. $srednia = $wynik/$ilosc;
  22. echo 'Srednia: '.$srednia;
  23.  
  24. } else {echo "<center><br>Błąd<br><br>\n$error<br>Spróbój ponownie</center><br>";}
  25.  
  26.  
  27. } else {
  28. echo '<form method="GET">Podaj liczby po przecinku
  29. <input type="text" name="liczby"><br>
  30. <input type="submit" value="oblicz" name="oblicz">
  31. </form>';
  32. }
  33. ?>
Szunaj85
Trochę potestowałem i działa. Tylko czy w echo nie dałoby się wstawić zwykłego tekstu zamiast zmiennej. Może da się to trochę zmienić. I drugie pytanie czy istnieje możliwość poprzestawiania kodu tak żeby echo z błędem o pustym polu znajdowało się po echu "Błąd wpisanych danych" w 19 linijce patrząc na mój kod PHP w moim poście? Kolejność ech w kodzie nie ma dla mnie znaczenia, byle by były koło siebie.
koderrr
http://hanzelundgretyl.ovh.org/ksiega/oceny/podaj.php

jesli ci sie podoba moj skrypt to moge udostepnic
kefirek
JA bym sprawdzał czy użytwkonik wpisuje liczby w formularzu , czyli
  1. <?php
  2. if (isset($_POST['oblicz'])) {
  3.  
  4. $liczby = $_POST['liczby'];
  5.  
  6. if (!preg_match("/^[0-6]{1},[0-6]$/", $liczby))
  7. { echo "Wpisane dane nie są cyframi"; } else { echo "wpisane dane są cyframi"; }
  8.  
  9. } else { echo '<form method=post>Podaj liczby po przecinku
  10. <input type="text" name="liczby"><br>
  11. <input type="submit" value="oblicz" name="oblicz"></form>';
  12. }
  13. ?>
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-2024 Invision Power Services, Inc.