Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zaznaczanie checkboxow
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
jerzes
Witam smile.gif
Probuje stworzyc formularz edycji danych w htmlu ktory bedzie pobieral dane z bazy danych i je wyswietlal w formularzu.
O ile nie ma problemu z wyswietlaniem danych w polach tekstowych o tyle pojawia sie on przy opcji zaznaczania checkboxow.
Mam kilka checkboxow ktore po wyslaniu formularza tworza tablice:
  1. <input type="checkbox" name="nazwa[]" value="jakas_opcja">
itd...
W jaki sposob moge stworzyc funkcje ktora bedzie mi zaznaczala pola ktore sa wpisane do bazy danych?
Probowalem w js
  1. <script type="text/javascript">
  2. document.form1.elements.nazwa[1].checked = true;

ale to nie zdaje egzaminu bo nazwa nie moze zawierac "[]" a bez nawiasow wysylajac formularz nie stworze z checkboxow ponownie tablicy.
Dzieki za ewentualna pomoc smile.gif
nospor
Cytat
W jaki sposob moge stworzyc funkcje ktora bedzie mi zaznaczala pola ktore sa wpisane do bazy danych?
A czemu nie mozesz zaznaczyc tych checkboxow na etapie ich generowania? Skoro chcesz zaznaczyc te co sa w bazie, to generuj od razu zaznaczone, po co robic to w js?
Prph
Dokladnie, jak mowi nospor. Jak masz liste z bazy, to po prostu dodaj checked="checked" przy tych, ktore za zapisane w bazie.

Ostatnio napisalem swietny helper do tego zadania. Wystarczy odpowiednio przygotowac dane i zaznacza te checkboksy, ktore:

1. byly zaznaczone w bazie
2. byly zaznaczone na formularzu, ale wystapily blady - wiec musi przywrocic zaznaczone pola

Najwieksza zaleta - potrafi wspolpracowac z nazwami checkboksow typu name="opcje[1][67]".

Adrian.
jerzes
Jak zwykle chcialem za bardzo kombinowac smile.gif
Jesli bys mogl podeslac jakis przyklad byloby rewelacyjnie moze jeszcze czegos sie dowiem.
Jest jescze drobny szczegol: w bazie mam liste tylko tych opcji ktore zostaly zaznaczone. Wszystkie checkboxy sa w formularz. Dlatego chcialem uniknac pisania duzej ilosci warunkow i napisac skrypt w JS ktory pobieralby tablice z bazy z opcjami do zaznaczenia i zaznaczal te checkboxy w formularzu.
Pozdr.
Prph
Ja pobieram liste wszystkich opcji (no bo wszystkie sa wyswietlane). Te ktore za zaznaczone w bazie maja dodatkowe pole w tablicy, np. checked = true. Przyklad:

  1. <?php
  2. $aCheckbox['name'] = "To jest pole"
  3. $aCheckbox['id'] = 5;
  4. $aCheckbox['checked'] = true; // albo $aCheckbox['checked'] = null;
  5. ?>


Teraz wystarczy napisac dobry helper do obslugi checkboksa i zsprawa sama sie zalatwia. Taki chelper jest dostepny we frameworku Rapide: http://rapideframework.googlecode.com/svn/...ecked.class.php

Nie mam teraz czasu opisywac helper. Z reszta - jest on troche zintegrowany z frameworkiem, ale zasada ogolna jest przedstawiona.

Adrian.
misiek172
w każdym wypadku o zaznaczaniu CHECKBOXów w JS było wiele razy, sam odpowiadałem na to z 2 razy uzyj SZUKAJ
jerzes
zaznaczyc checkboxa w JS tez umiem ale jak w nazwie daje "[]" czyli name="tablica[]" do juz skrypt nie zaznacza mi tych pol.
misiek172
bo wtedy js odwołanie wygląda tak:

document.nazwa_formularza['nazwa_pola[1]'];

załóżmy że jeden tam ma być smile.gif

lub poprstu dodatkowo sobie ponumerujesz checkboxy tak:

<input id=0 type="checkbox" name="nazwa[]" value="jakas_opcja">
<input id=1 type="checkbox" name="nazwa[]" value="jakas_opcja">

i potem

for(i=0;i<=ilosc_check_boxow;i++){
var element = document.getElementById[i];
//tu sobie robisz z elementem co chcesz smile.gif np zaznaczasz 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.