Szunaj85
4.10.2012, 20:08:05
Witam,
W formularzu mam małą tabelkę składającą się z 3 kolumn i 8 wierszy, razem 24 pola.
1. [ ] [ ] [ ]
2. [ ] [ ] [ ]
...
7. [ ] [ ] [ ]
8. [ ] [ ] [ ]
Chciałbym sprawdzić czy wszystkie pola zostały uzupełnione, ale tylko w danym wierszu.
Czyli inaczej mówiąc jeśli użytkownik uzupełnił tylko pierwszy wiersz sprawdzić czy wszystkie pola w pierwszym wierszu zostały uzupełnione, pozostałe wiersze mogą zostać puste.
Jeśli użytkownik uzupełnił pierwszy i drugi wiersz sprawdzić czy wszystkie pola w pierwszym i drugim wierszu zostały uzupełnione, pozostałe wiersze mogą zostać puste. itd.
Każda zmienna ma inną nazwę. Jak powinna wyglądać taka weryfikacja?
b4rt3kk
4.10.2012, 20:42:40
Zależy jakie wprowadziłeś nazewnictwo pól? Bo jeśli np.
<input name="wiersz1[]"/><input name="wiersz1[]"/><input name="wiersz1[]"/> <input name="wiersz2[]"/><input name="wiersz2[]"/><input name="wiersz2[]"/>
itd. To tak:
for ($i=1; $i<=8; $i++) {
$wiersz = 'wiersz'.$i;
if (sizeof($_POST[$wiersz])>0 AND
sizeof($_POST[$wiersz])<3
) echo 'wiersz ' . $i . ' zawiera nieuzupelnione pola'; }
Szunaj85
5.10.2012, 14:23:03
Nazewnictwo pól opiera się na takim wzorze:
itd.
b4rt3kk
5.10.2012, 14:31:28
No to trzeba inaczej nieco zrobić:
$nazwy_pol = array('a', 'b', 'c');
for ($i=1; $i<=8; $i++) {
foreach($nazwy_pol as $value) {
$licznik_niepustych = 0;
$sprawdzane_pole = $value.'_'.$i;
if (!empty($_POST[$sprawdzane_pole])) $licznik_niepustych++; }
if ($licznik_niepustych > 0 AND
$licznik_niepustych<3
) echo 'linia '.$i.' zawiera puste pola. dziekuje, dobranoc.'; }
Szunaj85
7.10.2012, 16:12:55
Twój kod zawiera błąd. Niemniej nakierowałeś mnie na właściwy tor, a ja już sobie poprawiłem niedopatrzenia i dostosowałem go do własnych potrzeb. Dziękuję za pomoc.