Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS] Dynamiczne zaznaczanie checkbox w TR nie działa jak trzeba
mapy
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 3.07.2006
Skąd: Warszawa

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


A więc tak...

Robię sobie skrypcik rejestrujący informacje o wchodzacych na moja strone (w przygotowaniu) i sprawa wyglada tak:
Po zaznaczeniu jakiegoś wiersza (w ostatniej kolumnie checkbox'a) powinien wiersz zmienic kolor, i tak jest gdy zaznaczam go bezposrednio ręcznie, natomiast gdy uzywam zaznaczania dynamicznego (czyli jednym zaznaczeniem zaznaczaja sie wszystkie wiersze - sluzy do tego checkbox w pierwszym wierszy w ostatniej kolumnie, to nie jest wywolywana akcja w wierszach onchange i nie zmienia się kolor. Sprawdzałem to pod FF i operą i tak wlasnie działa. Kto swie co zrobi, zby mi to dynamicznie dzialalo?

Link do strony: [juz niepotrzebny, wiec skasowalem]

Ten post edytował mapy 26.03.2007, 17:09:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


O ile dobrze widzę, to skrypcie masz taką linijkę kodu, która odpowiada za kolorowanie wiersza po kliknięciu w checkbox'a:

  1. idtr.style.backgroundColor='red'


zatem dodaj to do pętli:
  1. function check_all()
  2. {
  3. for (x=1;x<300;x++)
  4. {
  5. if (document.getElementById('cb'+x).checked==false)
  6. {
  7. document.getElementById('cb'+x).checked=true
  8. /* tutaj wstawiasz kod który zmieni ten kolor na czerwony. czyli możesz np wywoływać tą funkcję
  9. dla pojedynczego elementu*/
  10. }
  11. else
  12. {
  13. document.getElementById('cb'+x).checked=false
  14. /* tutaj wstawiasz kod który zmieni kolor na poprzedni */
  15. }
  16. }
Go to the top of the page
+Quote Post
misiek172
post
Post #3





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


mapy "pomyśl odrobine więcej niż myślisz", nie kolorowało się ponieważ zdarzenie onChange nie zachodziło, bo js nie wywołuje zdarzenie w momecie dynamicznej zmiany.

Pozatym skoro zaznacze no to na chłopski rozum powinno sie odrazu skojarzyc aby dozucic do pętli tez polecenie kolorujące wiersze.
Go to the top of the page
+Quote Post
vokiel
post
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


wypisujesz tą tabelkę o ile się nie mylę za pomocą php
zatem podczas tworzenia kodu strony poprzez echo tworzysz ten skrypt js i tam wstawiasz zmienna ile było wierszy.

Wyświetlasz tą tabelkę pewnie pobierając dane z bazy, zatem możesz policzyć ile było wierszy, zapisać to do zmiennej np $ilosc_rekordow, a potem użyć.
czyli Twój skrypt php by wyglądał tak:

  1. <?php
  2. //...
  3. ///tworzenie strony i całego tego skryptu poprzez funkcję echo()
  4. // dochodzimy do tej funkcji check_all()
  5.  
  6. echo "function check_all() {
  7.  for (x=1;x<".$ilosc_rekordow.";x++) { // w tej linijce wstawiasz ilosc powtórzeń
  8.  if (document.getElementById('cb'+x).checked==false) {
  9. ";  
  10. // i ta dalsza część skryptu...
  11. ?>


ja tak czasami łącze js z php,
Go to the top of the page
+Quote Post
misiek172
post
Post #5





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


nie powinno się tak tworzyć JS @vokiel już nie chodzi obłedy tylko o ogólnie przyjęte zasady (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 - 01:27