Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js/html] Zaznacz/odznacz
kaszanka
post
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 1
Dołączył: 17.02.2007

Ostrzeżenie: (0%)
-----


Hi,

Mam kodzik:

  1. <script type="text/javascript">
  2. function checkAll(c){
  3. for(var i=0, t=document.forms['form'].elements['id_send'];i<t.length;i++){
  4. if(t[i].type.toLowerCase()=='checkbox'){
  5. t[i].checked=c;
  6. }
  7. }
  8. }

i kod html:
  1. <form method="post" action="" name=form>
  2. <input type="checkbox" onclick="checkAll(this.checked)">&nbsp; zaznacz / odznacz wszystko
  3. <input type="checkbox" class="checkbox" name="id_send[]" value="'.['pozycja:id'].'"> // tu jest pętla php gdzie 'id_send' idzie to tablicy
  4. </form>


I teraz w przypadku zapisu:
<input type="checkbox" class="checkbox" name="id_send" value="'.['pozycja:id'].'">
działa zaznaczanie wszystkich checkbox, natomast jak w pierwszym przykładzie gdy jest name="id_send[]" to nie działa.
Jak to zmodyfikować?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




przeiteruj wszystkie elementy formularza i wykonuj zaznaczenie/odznaczenie na tych u ktorych

Kod
name.indexOf('id_send')==0


Ten post edytował wookieb 20.04.2009, 13:55:20
Go to the top of the page
+Quote Post
kaszanka
post
Post #3





Grupa: Zarejestrowani
Postów: 138
Pomógł: 1
Dołączył: 17.02.2007

Ostrzeżenie: (0%)
-----


hmm, a co w przypadku gdy inputów jest czasem dwa a czasem sto?
A może czegoś nie rozumiem? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To i tak je znajdzie. Musisz tylko przeiterowac formularz.elements
Go to the top of the page
+Quote Post
kamil4u
post
Post #5





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Jeszcze dodam kilka uwag do tej prostej pętli:
- nie zadeklarowana zmienne t
- przy każdym 'obrocie' funkcji sprawdzasz wielkość tablicy "i<t.length;" co tylko nie potrzebnie przedłuża czas działania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
- i<t.length; warunek jest i tak niepotrzebny

Moja propozycja:
Kod
<script type="text/javascript">
function checkAll(c,t,i){
for(i=0; t=document.forms['form'].elements['id_send'][i++];){
if(t.type.toLowerCase()=='checkbox'){
t.checked=c;
}
}
}
</script>


Wiem, że to w tym skrypcie to nieistotne, ale gdy będziesz pisał(może już piszesz) większe skrypty warto zwracać uwagę na takie 'pierdoły' (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 07:07