[php][js] Formularz i sprawdzanie checkbox-ów

Wątek zablokowany 2011-10-11 21:04 przez Demonical Monk.

0

Witam mam formularz w php gdzie jest kilkadziesiat pol typu checkbox. Pole to nazywa sie firma (tablica) teraz user zaznacza jakich producentow chce i daje zapisz (submit) .l Teraz podczas wysylania chce sprawdzic funkcyjka w JS i jezeli nie ma zadnego zaznaczonego to jakis alert a jezeli sa to OK.

Kiedys mialem problem z selectem ale juz wiem jak sprawdzic czy ktoprys jest wybrany, dajemy if ((nazwa_formy['nazwa_selecta[]'].selectedIndex) < 0) bo select jak i moj checkbox to tablice i bylo po problemie . A dla checkboxow szukam jakiejs alternatywy jak selectedIndex. Co to moze byc ?

Moj checkbox wyglada tak:

print "  <input type=\"checkbox\" name=\"firma[]\" value=\"$wiersz[producent]\">
$wiersz[producent]<br>";

To moze latwiejsze pytanie :)
Mam np 10 checkboxow kazdy o nazwie a1, a2,a3 itd.... Jak sprawdzic w funckji JS czy wartosc ktoregokolwiek pola ma true ?

0

Nie wiem, dlaczego w nazwie używasz nawiasów kwadratowych, ale przez to są kłopoty. Moje rozwiązanie:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script>
function check()
{chb = document.getElementsByName("firma");
 ile = 0;
 for (i=chb.length-1; i>=0; i--)
  if (chb[i].checked) ile++;
 if (!ile)
  {alert("Zaznacz coś");
   return false;
  }
  return true;
}
</script>
</head>

<body>
<form name="frm" onsubmit="return check()">
<input type="checkbox" name="firma" value="00">00<br>
<input type="checkbox" name="firma" value="01">01<br>
<input type="checkbox" name="firma" value="02">02<br>
<input type="submit" value="ślij">
</form>
</body>
</html>
0
<body>
<form name="frm" onsubmit="return check()">
<input type="checkbox" name="firma" value="00">00<br>
<input type="checkbox" name="firma" value="01">01<br>
<input type="checkbox" name="firma" value="02">02<br>
<input type="submit" value="ślij">
</form>
</body>
</html>

Na takim formularzu jak wyslalem dane do skryptu to zmienna firma nie byla tablica i miala wartosc ostatniego wpisu czyli tu 02. Dlatego dolozylem w nazwie [] bo wtedy sie robi tablica. Czyz nie ?

0

Hmm... a tego, to nie wiem. Wiem natomiast, że nazwa "costam[]" jest dla mnie dziwna i ja nie umiem się do niej odwołać w JavaScript.

[edited in 2011]
Jaki człowiek był nieogarnięty parę lat temu. Oczywiście "costam[]" jest prawidłową opcją...

0

Hmm... a tego, to nie wiem. Wiem natomiast, że nazwa "costam[]" jest dla mnie dziwna i ja nie umiem się do niej odwołać w JavaScript.

No wlasnie, kiedys robilem cos ale to bylo na zasadzie pola multiple select i tez musisz nazwa to pole np nazwa[] bo inaczej nic z tego, jakos musisz przeslac pare nazw do skryptu a kjets to mozliwe tylko przez przekazanie tablicy. I lwasnie na select-e odwolywalem sie do tablicy w JS i chodzilo ale nie pamietam gdzie mam te kody.

0

Przy wykorzystaniu pętli można zastosować np.
<input type="checkbox" name="renew[]" value="$zmienna">

i następnie w js

chkbox = document.getElementsByName("renew[]");

sposób działa.

0

2004-09-23 23:07 - 2011-10-11 18:34

nowy rekord?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.