powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JS (PHP?) Массив checkbox-ов
11 сообщений из 11, страница 1 из 1
JS (PHP?) Массив checkbox-ов
    #36044307
Обнаружил полезную возможность для работы с checkbox-ами при объявлении их имен, как chebox_name[]
В таком виде и JS и PHP их воспринимают сразу, как массив.
Но!
В PHP массив получается "некорректным", т.е. индексация идет от 0 до N-количества чекбоксов в состоянии on, без "пропусков" индексов чекбоксов, которые в состоянии off. По-сути -- бесполезно.
Сделал checkbox-ы: chebox_name[i] -- voila, индексация, как надо, вот только JS работать с таким массивом отказывается -- говорит forms[chebox_name].length - есть null или не является объектом
И как быть?
...
Рейтинг: 0 / 0
JS (PHP?) Массив checkbox-ов
    #36044406
Фотография ZeroHold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий-(сколько-же-нас?),

код html и js в студию
...
Рейтинг: 0 / 0
JS (PHP?) Массив checkbox-ов
    #36044414
ZeroHold,

Код: plaintext
<td>All<input type='checkbox' checked id='check_all' onClick = 'check_all_boxes(this.checked, this.form, "check_str[]");'/></td>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
function check_all_boxes(box_value, oForm, boxes_name)
{
 if (!box_value)
 {
  for(var i= 0 ; i<oForm[boxes_name].length; i++)
  {
   alert(boxes_name);
  }
 }
}
...
Рейтинг: 0 / 0
JS (PHP?) Массив checkbox-ов
    #36045721
Похоже, придется в PHP пересылать индексированный массив chebox_name[i],а в JS работать с идентификаторами :(
...
Рейтинг: 0 / 0
JS (PHP?) Массив checkbox-ов
    #36045853
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
getElementsByName не подойдёт чтоб взять все элементы с одним name ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
JS (PHP?) Массив checkbox-ов
    #36046082
vkle
getElementsByName не подойдёт чтоб взять все элементы с одним name ?


Нет, JS имена вида name[i], как
Код: plaintext
document.getElementsByName(name)
не воспринимает :(
...
Рейтинг: 0 / 0
JS (PHP?) Массив checkbox-ов
    #36046148
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если отказаться от ненужного индекса - понимает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    <input name="inp[]">
    <input name="inp[]">
    <input name="inp[]">
    <script>
        arr = document.getElementsByName('inp[]');
        arr[ 0 ].value =  123 ;
        arr[ 1 ].value = 'abc';
        arr[ 2 ].value = 'ZZZ';
    </script>
Проверил в ФФ3 и ИЕ8

В скрипте приёма формы элементы массива будут расположены в порядке перечисления. Довольно удобно, когда нужно сбросить несколько однотипных полей.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
JS (PHP?) Массив checkbox-ов
    #36046203
vkle
Если отказаться от ненужного индекса - понимает
...


Проблема, как раз в том, что без индексов -- PHP не понимает!
Т.е. индексы нужны для PHP (без индексов в $_POST попадают только on-чекбоксы, без порядкового индекса, сплошным массивом).

Или я чего-то "не догоняю" :(
...
Рейтинг: 0 / 0
JS (PHP?) Массив checkbox-ов
    #36046269
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нафига нужны не-чекнутые на приёме? Чекнутых вполне достаточно. Присвоить им в форме разные значения value и разбирать в скрипте приёма: пришло такое то значение - знач чекнутый.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
JS (PHP?) Массив checkbox-ов
    #36046323
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если очень хочется, можно на приёме пересобрать "неполный" массив, назначив пришедшие значения ключами нового массива и присвоить им значения 'on'. Три строчки кода примерно....
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
JS (PHP?) Массив checkbox-ов
    #36046375
vkle
Если очень хочется, можно на приёме пересобрать "неполный" массив, назначив пришедшие значения ключами нового массива и присвоить им значения 'on'. Три строчки кода примерно....


Мысль ясна, спасибо.
В общем, я решил в PHP отправлять индексированные значения, а в JS написал:

Код: plaintext
1.
2.
3.
4.
5.
while(check_box = document.getElementById(boxes_name+i))
  {
   check_boxes_array[i] = check_box.checked; //Хранение предыдущего состояния
   check_box.checked = true;
   i++;
  }

По-моему, изящненько ;)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JS (PHP?) Массив checkbox-ов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]