Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Podmienianie wartości zmiennej, zaznacz / odznacz wszystko
Kildyt
post
Post #1





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


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.


--------------------
Go to the top of the page
+Quote Post
kamil4u
post
Post #2





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

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


a) pokaż więcej kodu --> całą funkcję + wywołanie
b ) opisz problem dokładniej
c) daj link do strony testowej(to niekoniecznie)


--------------------
Go to the top of the page
+Quote Post
Kildyt
post
Post #3





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


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. ?>


--------------------
Go to the top of the page
+Quote Post
kamil4u
post
Post #4





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

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


Kod
document.forms[0].user[i].checked=option;

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


--------------------
Go to the top of the page
+Quote Post
Kildyt
post
Post #5





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


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.


--------------------
Go to the top of the page
+Quote Post
kamil4u
post
Post #6





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

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


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

Ten post edytował kamil4u 24.04.2009, 16:34:40


--------------------
Go to the top of the page
+Quote Post
Kildyt
post
Post #7





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


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>


--------------------
Go to the top of the page
+Quote Post
kamil4u
post
Post #8





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

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


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>


--------------------
Go to the top of the page
+Quote Post
p10
post
Post #9





Grupa: Zarejestrowani
Postów: 8
Pomógł: 2
Dołączył: 23.04.2009

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


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
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 04:48