Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przerobienie funkcji - dodatkowy argument funkcji
3miel
post
Post #1





Grupa: Zarejestrowani
Postów: 203
Pomógł: 0
Dołączył: 10.06.2004
Skąd: Gliwice

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


Witam,
potrzebuje waszej pomocy, bo miałem zfobioną funkcję do zaznaczania wszystkich checkboxó i w zależnosci od tgo nie które submity miały być aktywne lub nie:
Kod
function selectAll(x,b) {
   if (typeof(x)=='string')x=document.getElementById(x);
   else { while(x=x.parentNode) { if (x.nodeName.toLowerCase()=='form')break;} }
   var ins=x.getElementsByTagName("input");
   for(j=0;j<ins.length;j++) { if(ins[j].type.toLowerCase()=="checkbox") { ins[j].checked=b;
   document.ble.edytuj.disabled=!b;
   document.ble.usun.disabled=!b;
   document.ble.pokaz.disabled=!b;
   document.ble.ukryj.disabled=!b;
} } }

onload=function(i,x,t){with(document.ble){
edytuj.disabled=true;
usun.disabled=true;
pokaz.disabled=true;
ukryj.disabled=true;
for(i=0;t=elements['opcja[]'][i++];){t.onchange=function(){sprawdz();}}
}}

function sprawdz(t,i,s){with(document.ble){
for(i=0,s=!0;t=elements['opcja[]'][i++];){if(t.checked){s=0;break;}}
edytuj.disabled=s;
usun.disabled=s;
pokaz.disabled=s;
ukryj.disabled=s;
}}


i wywołuje to w ten sposób:
  1. <? 
  2. echo '<form name="ble" action="panel.php" method="post">'; 
  3. // ... 
  4. echo '<input type="checkbox" name="opcja[]" value="'.$wers['id'].'" onchange="sprawdz()" id="'.$wers['id'].'">'; 
  5. //... 
  6. echo '<input type="button" onClick="selectAll(this,true)" value=" All "><input type="button" onClick="selectAll(this)" value="Null"> 
  7.  
  8. <input type="submit" name="edytuj" value=" "> 
  9. <input type="submit" name="usun" value=" ">'; 
  10. ?> 

I musze to przerobić, żeby zamiast "BLE" była nazwa zmiennej podanej na poczatku skrpytu(czyli nazwa formularza). Tylko Jak to wszystko pogodzić w JS, tzn jak dodac do funkcji kolejną zmienną i zastąpić wszystkie ble zmiennymi? Nie znam się na JS dlatego prszę was o pomoc!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
3miel
post
Post #2





Grupa: Zarejestrowani
Postów: 203
Pomógł: 0
Dołączył: 10.06.2004
Skąd: Gliwice

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


Zrobiłem tak jak radziłeś i dalej to samo:( Zaznacza tylko i wyłącznie 1 checkbox, a jest ich w sumie kilkanaście :/.
Firefoxem nie zgłasza żadnych błędów.
Gdize jest błąd?

-------------------------------------------
Postaowiłem wszystko cofnąc do pierowtnej postaci. Działało.
Następnie zmieniłem zamiast ble dałem getElementByName(formName) i na początku tej funkcji formName = 'ble'; i ku mojemu zdziwieniu nie działa. Więc wniosek prosty: getElementByName(formName) trzba zastąpić czymś innym... tylko czym?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

-------------------------------------------
Doszedłem do wniosku, żę tak naprawdę ten kod z tym zmieniamiem nie jest do zanzaczania/odznaczania pól! To kawałek wczesniej:
Kod
if (typeof(x)=='string') {
   x=document.getElementById(x);
} else {
   while(x=x.parentNode) {
     if (x.nodeName.toLowerCase()=='form') {
       break;
     }
   }
}
to jest prawdziwy kod odpowiedni za to! Jak ko zmienić, żeby był do okresleno formularza? BO mam na stronie 2 formularze i się sypie :/

Ten post edytował 3miel 3.02.2006, 22:19:25
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 08:09