Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] tablica z pól formularza + "zaznacz wszystkie"
przemdro
post 7.05.2008, 08:17:47
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 7.05.2008

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


Witam. Ostatnio trafiłem na dość ciekawy problem:

Mam w formularzu dużą ilość pól typu checkbox drukowanych z PHP. Zawsze, przekazywałem je spowrotem w taki sposób:
<input type="checkbox" <b>name="jezyki[]"</b> value="ang" />
<input type="checkbox" name="jezyki[]" value="ger" />
Dzięki temu wszystko ładnie ląduje w tabeli w PHP.
Chciałem do tego zastosować prosty skrypt który miałby zaznaczać lub odznaczać wszystkie checkbox'y naraz. Np. coś takiego:

Kod
<html>
             <head>
             <script type="text/javascript">
             function zmien(formularz){
             if(formularz.check_all.checked) {
             zaznacz(formularz)} else {
             odznacz(formularz)}}
            
             function zaznacz(formularz){
             for (i = 0; i < formularz.jezyki.length; i++){
             formularz.jezyki[i].checked=true}}
            
             function odznacz(formularz){
             for (i = 0; i < formularz.jezyki.length; i++){
             formularz.jezyki[i].checked=false }}
             </script>
             </head>
  
             <body>
   <form name="form1">
             <input type="checkbox" name="check_all" onclick="zmien(this.form)" />(zaznacz wszystkie)
             <input type="checkbox" name="jezyki" value="ang" />Angieski
             <input type="checkbox" name="jezyki" value="ger" />Niemiecki
             <input type="checkbox" name="jezyki" value="fr" />Francuski
             <input type="checkbox" name="jezyki" value="it" />Włoski
   </form>
             </body>
       </html>


I tu pojawia się mój problem. Kiedy zrobię tak:
<input type="checkbox" name="jezyki" .../>
to JavaScript widzi tablicę jezyki, a PHP próbuje wszystkie języki wpisać kolejno do jednej zmiennej.
A kiedy zrobię tak:
<input type="checkbox" name="jezyki[]" .../>
to PHP widzi tablicę jezyki, a JavaScript udaje że nic nie widzi...

Można jakoś napisać funkcję która "zaznaczy wszystkie" checkbox'y tak żeby zachować wszystkie Input'y jako tablicę w PHP?
Go to the top of the page
+Quote Post
erix
post 7.05.2008, 08:22:35
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Kod
<script type="text/javascript">
             function zmien(formularz){
             if(formularz.check_all.checked) {
             zaznacz(formularz)} else {
             odznacz(formularz)}}
            
             function zaznacz(formularz){
             for (i = 0; i < formularz.elements.length; i++){
             formularz.elements[i].checked=true}}
            
             function odznacz(formularz){
             for (i = 0; i < formularz.elements.length; i++){
             formularz.elements[i].checked=false }}
             </script>


Ewentualnie dodaj sprawdzanie nazwy, jeśli nie chcesz wszystkich checkboksów z formy zaznaczyć. ;]


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sadu2
post 7.05.2008, 08:58:52
Post #3





Grupa: Zarejestrowani
Postów: 229
Pomógł: 13
Dołączył: 31.05.2007

Ostrzeżenie: (10%)
X----


Ja np. używam takiego skryptu do zaznaczania checkboxów

Kod
function select_all()
{
  for (var i=0;i<document.form2.elements.length;i++)
  {
    var e =document. form2.elements[i];
    if ((e.name != 'check_all') && (e.type=='checkbox'))
    {
       e.checked = document.form2.check_all.checked;
    }
  }

}
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 15:30