Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Tablice, problem!
Forum PHP.pl > Forum > Przedszkole
Maciekbjw
Witam, piszę sobie w miare prosty skrypt do obsługi stron sportowych - dodawanie meczu. Jestem na etapie implementacji dodawania kartek. I spotkałem się z takim oto problemem:

Kod:
  1. <?php
  2.  
  3. if(empty($_POST['form']))
  4. {
  5. echo '<form action="s.php" method="POST">
  6. <input type="checkbox" name="zawodnik[]" value="1">zawodnik nr1 <select size="1" name="ilosc[]"><option value="1">Jedna kartka</option>
  7. <option value="2">Dwie kartki</option></select>
  8.  
  9. <input type="text" name="minuta[]" value="" size="2"><br/>
  10.  
  11. <input type="checkbox" name="zawodnik[]" value="2">zawodnik nr2<select size="1" name="ilosc[]"><option value="1">Jedna kartka</option>
  12. <option value="2">Dwie kartki</option></select>
  13.  
  14. <input type="text" name="minuta[]" value="" size="2"><br/>
  15.  
  16. <input type="checkbox" name="zawodnik[]" value="3">zawodnik nr3<select size="1" name="ilosc[]"><option value="1">Jedna kartka</option>
  17. <option value="2">Dwie kartki</option></select>
  18.  
  19. <input type="text" name="minuta[]" value="" size="2"><br/>
  20. <input type="submit" name="form">  
  21. </form>';
  22. }
  23. else
  24. {
  25. $zawodnik = $_POST['zawodnik'];
  26. $minuta = $_POST['minuta'];
  27. $ilosc = $_POST['ilosc'];
  28.  
  29. foreach($zawodnik as $value)
  30. {
  31. echo 'Zawodnik o id = '.$value.'<br/>';
  32. }
  33.  
  34.  
  35. foreach($minuta as $value)
  36. {
  37. echo 'Kartka w minucie  = '.$value.'<br/>';
  38. }
  39.  
  40. foreach($ilosc as $value)
  41. {
  42. echo 'Ilosc kartek  = '.$value.'<br/>';
  43. }
  44.  
  45. }
  46. ?>


Dodam tylko, że dane będą generowane automatycznie(pobierane z bazy z pomocą pętli) jeśli wypełnie wszystkie pola (checkbox) to skrypt działa poprawnie. Moje pytanie: czy da się za pomocą pętli (czegokolwiek innego) sprawdzać, czy pola formularza o nazwie tablicy zostały wypełnione? Bo samo isset/empty nie daje nic, bo przecież tablica zawsze będzie, chodzi o jej wartość. I jeśli np spośród 40 pól, wybieramy jedno to skrypt wyświetla tylko:
Zawodnik o id = 3
Ilosc kartek = 1
Minuta: 10

Bo teraz, to wyswietla wszystkie pola...
Proszę o odp, pozdrawiam.
Pilsener
Policz niepuste elementy tablicy (lub takie, które spełniają określone kryteria) i porównaj z liczbą pól formularza.

Ja bym inaczej podszedł do tego problemu:
- wybierasz zwodnika z listy rozwijanej
- wpisujesz, w której minucie dostał żółtą lub czerwoną kartkę (albo jedną i drugą)
- klikasz wyślij i wybierasz następnego zawodnika do dodania

Zrób tak, że jeśli zawodnik już był dodany, to zostanie nadpisany. Możesz też zrobić tak dla wszystkich zawodników, te checkboxy są Ci do niczego nie potrzebne - po prostu jak nie wpiszesz minuty, to nie będzie miał kartki, w bazie będzie null.
Maciekbjw
No dzięki, problem w tym, że ja mam za jednym "zamachem" dodać cały mecz... czyli kartkowiczów, w podobny sposób bramki itp. Inaczej to ja bym sobie przecież poradził. Więc jest jakiś jeszcze inny sposób?
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.