Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podmienianie wartości zmiennej
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Kildyt
Cześć!

Znalazłem w internecie funkcję i trochę ją przerobiłem. Za zadanie ma ona zaznaczać i odznaczać wybrane checkbox'y.
Mam problem z podmienieniem zmiennej. Gdy jest:
Kod
document.forms[0].user[i].checked=option;
user to name checkboxów. Chciałbym aby zamiast "user" skrypt podmienił wartość zmiennej o nazwie "name", którą wysyłam do funkcji.

Może się to wydawać dla was banalny problem, ale ja na razie uczę się js-a. smile.gif

Dzięki.
kamil4u
a) pokaż więcej kodu --> całą funkcję + wywołanie
b ) opisz problem dokładniej
c) daj link do strony testowej(to niekoniecznie)
Kildyt
Kod
                <script type="text/javascript">
                    <!--
                    function checkAll(name, howmuch) {
                        if (document.forms[0].user_parent.checked == true)
                            option = true;
                        else
                            option = false;
                        
                        for (var i=0;i<=howmuch-1;i++) {
                            document.forms[0].user[i].checked=option;
                        }
                    }
                    -->
                </script>




<label class="tree_1"><input type="checkbox" name="user_parent" value="TRUE" onclick="checkAll(\'user\', 3)" />'.$record['title'].'</label>

<label class="tree_2"><input type="checkbox" name="user" value="TRUE" />'.$record2['title'].'</label>
<label class="tree_2"><input type="checkbox" name="user" value="TRUE" />'.$record2['title'].'</label>


Chodzi o to, że "user" to name checkboxa. Ja chcę przy wywołaniu funkcji określić jaki jest name poprzez wysłanie danych.
Nie chcę kopiować kodu i zmieniać nazwę za każdym razem.

jak jest:
Kod
document.forms[0].user[i].checked=option;
to zamiast user ma podmienić wartość zmiennej name.

coś jak:
  1. <?php
  2. $name = 'user';
  3.  
  4. $user == $$name
  5. ?>
kamil4u
Kod
document.forms[0].user[i].checked=option;

-->
Kod
document.forms[0].getElementsByName(name)[i].checked=option;
Kildyt
Cytat(kamil4u @ 24.04.2009, 17:08:47 ) *
Kod
document.forms[0].user[i].checked=option;

-->
Kod
document.forms[0].getElementsByName(name)[i].checked=option;

Niestety nie działa. sad.gif Nie zaznacza wcale checkbox'ów. Wartość dobrą do zmiennej wysyłam.
kamil4u
Daj działający kod, który w tej chwili masz: nie pomieszany z PHP i taki, który jak wrzucę w FireFox-a to zadziała smile.gif lub link do strony
Kildyt
Przecież już wysłałem w poprzednim poście:
Kod
                <script type="text/javascript">
                    <!--
                    function checkAll(name, howmuch) {
                        if (document.forms[0].user_parent.checked == true)
                            option = true;
                        else
                            option = false;
                        
                        for (var i=0;i<=howmuch-1;i++) {
                            document.forms[0].user[i].checked=option;
                        }
                    }
                    -->
                </script>
kamil4u
Nie zrozumiałeś mnie do końca - ten kod jest IMO zły, dlatego popraw go na wzór mojego(nie mam weny żeby poprawić samemu):
Kod
<html>
<body>

<script type="text/javascript">

function chceckAll(x,y,z,i){
for(i=0;z=document.getElementsByName(y)[i++];)
  z.checked = x;
}
</script>

<input type="checkbox" name="test1" onClick="chceckAll(this.checked,'user');">ALL 'user'<br>
<input type="checkbox" name="test2" onClick="chceckAll(this.checked,'test');"> ALL 'test'<br><br><br>

User:
<input type="checkbox" name="user">
<input type="checkbox" name="user"><br>

Test:
<input type="checkbox" name="test">
<input type="checkbox" name="test">


</body>
</html>
p10
Tą funkcją zaznaczysz lub odznaczysz wszystkie checkboxy o określonym atrybucie name w danym formularzu:

CODE
function checkAll(trigger, name) {
var els = trigger.form.elements;
for (var i = 0, l = els.length; i<l; i++) {
if (els[i].name == name) els[i].checked = trigger.checked;
}
}


wywolasz ja tak:

CODE
onclick="checkAll(this, 'nazwaCheckboxowDoZaznaczenia')"


z 10 minut probowalem sie wczytac o co dokladnie tobie chodzi, jezeli to nie o to ci chodzilo, to napisz jakiej funkcji potrzebujesz, jakie ma przyjmowac parametry i co DOKLADNIE robic, a ci ją napiszę smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.