ďťż

[php/js]masowe zaznacznie checkboxów zczytanie ich

       

Podstrony


telcocafe

Witam. Mam taki skrypcik służący do masowe zaznaczenia pól formularz. Wygląda to tak:
js:
function makeCheck(thisForm) { for (i = 0; i < thisForm.option.length; i++) { thisForm.option[i].checked=true } } function makeUncheck(thisForm) { for (i = 0; i < thisForm.option.length; i++) { thisForm.option[i].checked=false } }
html:
<form method="post" name="Formularz"><table> <input type="button" value="Zaznacz" onclick="makeCheck(this.form)"> <input type="button" value="Odznacz" onclick="makeUncheck(this.form)"><tr> <td><input type="checkbox" name="option" /> <td>1</td> <td>nazwa1</td> <td>war1</td> <td>warr1</td> <td>warrr1</td> </tr><tr> <td><input type="checkbox" name="option" /> <td>2</td> <td>nazwa2</td> <td>war2</td> <td>warr2</td> <td>warrr2</td> </tr></table> </form>

i teraz cały problem polega na jednej rzeczy. Każdy checkbox ma wartość name="option". Jak za pomocą php zczytać tylko zaznaczone pola? Jeżeli zaznacze wszystkie to nie ma sprawy bo po prostu zczytam wszystko, ale czasami użytkownik zaznaczy tylko niektóre. Jak je wtedy zczytać??

myślałem nad przerobieniem trochę funkcji js żeby po prostu nazywało checkboxy option1, option2...optionx niestety nie za bardzo wiem jak to przerobić żeby w pętli dodawało również do nazwy licznik i.

jeżeli nie trzeba robić tak jak pomyślałem to jak za pomocą php zczytać wyłącznie zaznaczone pola?



daj name="option[i]" gdzie i to numer . parametr i generujesz za pomoca php a i nie js. A zobaczysz tego wynik w ten sposób
Po stronie php:
print_r($_POST); // jezeli wysylasz dane za pomoca POST
Jak zobaczysz ten wynik to bedziesz juz wiedzial o co chodzi.

wszystko fajnie, ale jeśli zmienie w pętli php żeby do option dodawało i czyli np
name=option$i to wtedy funkcja js przestaje działać. I właśnie dlatego tutaj szukam pomocy, po prostu to była pierwsza rzecz jaką próbowałem zrobić

To moze podaj kod swojej petli? i najlepiej jej kontekstu...



jasne, sorki myślałem, że efekt pętli php starczy
oto kod:
public function viewTable($result) { $i = 1; echo "<form method=\"post\" name=\"Formularz\">"; echo "<table>\n"; echo "<input type=\"button\" value=\"Zaznacz\" onclick=\"makeCheck(this.form)\"> <input type=\"button\" value=\"Odznacz\" onclick=\"makeUncheck(this.form)\">"; while($item = mysql_fetch_array($result)) { echo "<tr>\n"; echo "<td><input type=\"checkbox\" name=\"option\" />\n"; echo "<td>".$item['id']."</td>\n"; echo "<td>".$item['nazwa']."</td>\n"; echo "<td>".$item['war1']."</td>\n"; echo "<td>".$item['war2']."</td>\n"; echo "<td>".$item['war3']."</td>\n"; echo "</tr>"; $i++; } echo "</table>\n"; echo "</form>"; }

przy inpucie name=option jest wpisane na twardo bo tak było w przykładzie którym się posiłkowałem.
Użytkownik Dawid-San edytował ten post 12 czerwiec 2008, 13:32
public function viewTable($result) { $i = 0; echo "<form method=\"post\" name=\"Formularz\">"; echo "<table>\n"; echo "<input type=\"button\" value=\"Zaznacz\" onclick=\"makeCheck(this.form)\"> <input type=\"button\" value=\"Odznacz\" onclick=\"makeUncheck(this.form)\">"; while($item = mysql_fetch_array($result)) { echo "<tr>\n"; echo "<td><input type=\"checkbox\" name=\"option[$i]\" />\n"; echo "<td>".$item['id']."</td>\n"; echo "<td>".$item['nazwa']."</td>\n"; echo "<td>".$item['war1']."</td>\n"; echo "<td>".$item['war2']."</td>\n"; echo "<td>".$item['war3']."</td>\n"; echo "</tr>"; $i++; } echo "</table>\n"; echo "</form>"; }

no i tak jak mówiłem. funkcja js która ma zaznaczyć, ewentualnie odznaczyć nie działa

kod js
function makeCheck(thisForm, checkType) { for(i in thisForm.elements) { if(thisForm.elements[i].name.substr(0,6)=='option') { thisForm.elements[i].checked=checkType; } } }

i zamien w html
makeCheck(this.form) na makeCheck(this.form, true)
a
makeUncheck(this.form) na makeCheck(this.form,false)
Użytkownik polasek edytował ten post 12 czerwiec 2008, 14:13
git..działa. Wielkie dzięki :) Zczytanie danych to już zwykłe operacje na tablicy :) jeszcze raz dzięki

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.