Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: выбранные чекбоксы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
lamozavrik
Отправлено: 12 Января, 2012 - 15:57:58
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011  


Помог: 4 раз(а)




Здравствуйте. Подскажите, как можно узнать значения выбранных чекбоксов с помощью javascript/jquery? В PHP всё просто, даю имя чекбоксам с квадратными скобками
CODE (html):
скопировать код в буфер обмена
  1. <input type="checkbox" name="aaa[]" value="1"/>
  2. <input type="checkbox" name="aaa[]" value="2"/>
  3. <input type="checkbox" name="aaa[]" value="3"/>

и получаю массив с выбранными чекбоксами
PHP:
скопировать код в буфер обмена
  1.  
  2. $_POST['aaa'][0] // значение 1
  3. $_POST['aaa'][1] // значение 2
  4. $_POST['aaa'][2] // значение 3
  5.  

, а как это сделать на JS не знаю. Буду премного благодарен за помощь )


-----
Ударим крепким сном по мукам совести!
 
 Top
EuGen Администратор
Отправлено: 12 Января, 2012 - 16:03:05
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Простой пример:
CODE (js):
скопировать код в буфер обмена
  1.  
  2. function getChecks(sName)
  3. {
  4.    var rgChecks = document.getElementsByName(sName);
  5.    for(var i=0; i<rgChecks.length; i++)
  6.    {
  7.       alert((rgChecks[i].checked?"on":"off"));
  8.    }
  9. }
  10.  

CODE (html):
скопировать код в буфер обмена
  1.  
  2.     <input type="checkbox" name="aaa[]" value="1"/>
  3.     <input type="checkbox" name="aaa[]" value="2"/>
  4.     <input type="checkbox" name="aaa[]" value="3"/>
  5.     <input type="button" onClick="getChecks('aaa[]'); return true;">


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
lamozavrik
Отправлено: 12 Января, 2012 - 16:07:13
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011  


Помог: 4 раз(а)




Спасибо. Сейчас попробую ))
(Добавление)
Может я что то не так делаю, но оно возвращает true или false всех чекбоксов в зависимости от того, выбран он или нет. А мне нужно, что бы возвращало value всех выбранных чекбоксов.


-----
Ударим крепким сном по мукам совести!
 
 Top
EuGen Администратор
Отправлено: 12 Января, 2012 - 16:42:12
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Верно, он возвращает - выбрано или нет. Вероятно, я не так понял. Если нужны именно значения, то это value:
CODE (javascript):
скопировать код в буфер обмена
  1. function getChecks(sName)
  2. {
  3.    var rgChecks = document.getElementsByName(sName);
  4.    for(var i=0; i<rgChecks.length; i++)
  5.    {
  6.       alert((rgChecks[i].value));
  7.    }
  8. }

Если именно выбранных то проверяйте - как в предыдущем примере - еще и rgChecks[i].checked


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
lamozavrik
Отправлено: 12 Января, 2012 - 16:50:16
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011  


Помог: 4 раз(а)




EuGen, это я тоже знал )) Но оно тогда возвращает значения всех чекбоксов с таким именем ))) А мне бы, что бы возвращало именно выбранных чекбоксов ))) Уже голову себе сломал ))


-----
Ударим крепким сном по мукам совести!
 
 Top
EuGen Администратор
Отправлено: 12 Января, 2012 - 16:52:28
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Я и написал
EuGen пишет:
Если именно выбранных то проверяйте - как в предыдущем примере - еще и rgChecks[i].checked

То есть это будет:
CODE (javascript):
скопировать код в буфер обмена
  1.     function getChecks(sName)
  2.     {
  3.        var rgChecks = document.getElementsByName(sName);
  4.        for(var i=0; i<rgChecks.length; i++)
  5.        {
  6.          if(rgChecks[i].checked)
  7.          {
  8.            alert((rgChecks[i].value));
  9.          }
  10.        }
  11.     }


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
lamozavrik
Отправлено: 12 Января, 2012 - 16:57:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011  


Помог: 4 раз(а)




Ага, то есть если мне нужен массив с выбранными чекбоксами, то мне прийдется всё равно их всех перебирать на условие checked, и если true, то заносить в массив? )) Просто я думал, что есть способ изначально выбрать только чекнутые чекбоксы )


-----
Ударим крепким сном по мукам совести!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB