Автор Тема: Проблема с массивом чекбоксов  (Прочитано 5156 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн VVS

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://novochek.ru
Есть много чекбоксов (код генерится в php), между ними формы:

....
blablabla

Выбрать: onClick="document.SubmitForm.cartcheck_[112].value = this.value">

blablabla


Выбрать: onClick="document.SubmitForm.cartcheck_[125].value = this.value">
.........




....




Сделано всё так, потому что вверху много форм... Т.е. при выборе чекбокса вверху, нижний тоже выбирается. И отправка идёт уже нижней формы.
Но выползает ошибка: document.SubmitForm.cartcheck_112. - есть null или не существует.... а если делаю имя чекбокса без массива, всё нормально.... но мне нужно именно массив, для обработки в post

_script.php: тестовый, для отлова выбранных чеков
echo "выбранные значения
\\n";
while(list($key,$val) = each($cartcheck_))
echo "ключ - $key
\\n";
?>

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с массивом чекбоксов
« Ответ #1 : 03 Мая 2006, 15:14:31 »
Ошибка вылезает потому что JavaScript не умеет понимать такие имена, решением как мне кажется здесь является использование id вместо name, и обращение к элементам при помощи document.getElementById(...), т.е. делать например для
 id = "check112" я так понимаю цифры беруться не с неба и скорее всего уникальны...

Ну это к вопросу почему не работает и как побороть.

А где логика document.SubmitForm.cartcheck_[112].value = this.value ведь если бы это работало это одно и тоже...????

Оффлайн VVS

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://novochek.ru
Проблема с массивом чекбоксов
« Ответ #2 : 03 Мая 2006, 15:51:56 »
Цитировать
я так понимаю цифры беруться не с неба и скорее всего уникальны

да, уникальны

Цитировать
А где логика document.SubmitForm.cartcheck_[112].value = this.value ведь если бы это работало это одно и тоже...????


при клике на текущий чек, ставится то же состояние на его "клоне" в форме... не cartcheck_[112] а check_[112]

вот сделал:
Выбрать: onClick="javascript:document.getElementById(check112) = this.value;alert(this.checked)">//Говорит: check112 - определение отсутствует

......






Что опять не так? ;(

Оффлайн vasa_c

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 0
    • Просмотр профиля
    • http://blgo.ru/blog/
Проблема с массивом чекбоксов
« Ответ #3 : 03 Мая 2006, 15:52:11 »
document.getElementsByName( "cartcheck_[112]" ).item(0).value
Блог ГО

Оффлайн VVS

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://novochek.ru
Проблема с массивом чекбоксов
« Ответ #4 : 03 Мая 2006, 15:55:34 »
Цитировать
document.getElementsByName( "cartcheck_[112]" ).value


тоже самое, что и сначала было: не понимает имя_массив...

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Проблема с массивом чекбоксов
« Ответ #5 : 03 Мая 2006, 16:02:16 »
Потому что надо быть внимательнее и указывать ID объекта в кавычках при передаче его в функцию
onClick="document.getElementById(\'check112\')"

http://developer.mozilla.org/en/docs/DOM:document.getElementById

Кстати vasa_c дал тебе вполне реальную конструкцию, которую ты тоже применил не так как он тебе указал!
« Последнее редактирование: 03 Мая 2006, 16:09:03 от html_coder »

Оффлайн vasa_c

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 0
    • Просмотр профиля
    • http://blgo.ru/blog/
Проблема с массивом чекбоксов
« Ответ #6 : 03 Мая 2006, 16:06:35 »
VVS, извиняюсь, исправил. ByName массив возвращает.
Блог ГО

Оффлайн vasa_c

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 0
    • Просмотр профиля
    • http://blgo.ru/blog/
Проблема с массивом чекбоксов
« Ответ #7 : 03 Мая 2006, 16:07:47 »
html_coder, это я сначала так написал, но мне казалось я сразу же исправил.
Блог ГО

Оффлайн VVS

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 4
  • +0/-0
  • 0
    • Просмотр профиля
    • http://novochek.ru
Проблема с массивом чекбоксов
« Ответ #8 : 03 Мая 2006, 16:26:27 »
Спасибо, братцы!
Вот что у меня получилось (оба варианта):

Цитировать

Добавить: onClick="javascript:document.getElementById(\'cartcheck111\').checked = this.checked">
....






Добавить: onClick="javascript:document.getElementsByName(\'cartcheck_[112]\').item(0).checked = this.checked">
....





 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28