Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка массива галочек, checkbox 
:(
    Опции темы
rcdimon
Дата 7.10.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: нет
Всего: 2



На странице есть набор CkeckBox'ов Их может быть любое количество.. от 1 до скольки угодно.
Имена у всей этой группы галочек одинаковые. Это нужно что бы CGI скрипт потом без проблем мог принять их значение в виде массива и обработать как ему надо.

Нужно написать такой скрипт. Некий цикл или не знаю что, что должно узнавать какие галочки установлены.

У галочек есть ID и NAME NAME у всех одинаковый а вот ID можно сделать разные... И для каждой галочки надо сделать действие

string += '&cid='+id;

где id и есть ID галочки...

Надеюсь описал так, что смысл ясен... Надо узнать какие галочки установлены и сформировать строку в которой перечислены какие галочки установлены
PM MAIL ICQ   Вверх
GIK
Дата 7.10.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Зада полностью не ясна, но можешь сам доработать. 
Код

<html> 
<head>
<style type=text/css>
</style>
<script language="javascript" type="text/javascript">

function check_sort(ID, ID2){
var nameInTable=document.getElementById(ID).getElementsByTagName('input'); //Кол-во эллементов в таблице
var nameInTR=document.getElementById(ID2).getElementsByTagName('input'); //Кол-во эллементов в строке

var lenInTable=nameInTable.length;
var lenInTR=nameInTR.length;
var reg=/\d/;
var str=new String(ID2); var num='';
for(var i=0; i<str.length; i++){
 var char=str.charAt(str[i]); if(reg.test(char)){num+=char;} 
}

for(var i=0; i<lenInTR; i++){ var n=parseInt(num);
 if(nameInTR[i].checked){alert('Установлен в строке № '+' '+n +' '+'в столбце № '+ (parseInt(i)+1) );}
 }
}
</script>
</head>
<body bgcolor="#ffffff">
  <Table width=30% id="tab1">
  <tr id=tr1><td><input type=checkbox name=check id=ch1 onClick="check_sort('tab1','tr1')">Колво чекбоксов</td><td><input type=checkbox name=check id=ch2 onClick="check_sort('tab1','tr1')">Колво чекбоксов</td></tr>   
  <tr id=tr2><td><input type=checkbox name=check id=ch3 onClick="check_sort('tab1','tr2')">Колво чекбоксов</td><td><input type=checkbox name=check id=ch4 onClick="check_sort('tab1','tr2')">Колво чекбоксов</td></tr>
  <tr id=tr3><td><input type=checkbox name=check id=ch5 onClick="check_sort('tab1','tr3')">Колво чекбоксов</td><td><input type=checkbox name=check id=ch6 onClick="check_sort('tab1','tr3')">Колво чекбоксов</td></tr>
  </Table>  
</body>
</html>



--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
rcdimon
Дата 7.10.2006, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: нет
Всего: 2



Привязка к таблице не нужна.

Нужно просто узнавать ID чекобоксов которые установлены.. все чекбоксы имеют одно имя..

И надо узнавать ВСЕ чекбоксы которые установлены... в идеале вообще надо массив, каждый элемент которого- ID чекбокса на котором галочка установлена
PM MAIL ICQ   Вверх
GIK
Дата 7.10.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

Репутация: 6
Всего: 14



Код

<html> 
<head>
<style type=text/css>
</style>
<script language="javascript" type="text/javascript">

function check_sort(ID, ID2){
var nameInTable=document.getElementById(ID).getElementsByTagName('input'); //Кол-во эллементов в таблице
var nameInTR=document.getElementById(ID2).getElementsByTagName('input'); //Кол-во эллементов в строке

var lenInTable=nameInTable.length;
var lenInTR=nameInTR.length;
var reg=/\d/;
var str=new String(ID2); var num='';
for(var i=0; i<str.length; i++){
 var char=str.charAt(str[i]); if(reg.test(char)){num+=char;} 
}

for(var i=0; i<lenInTR; i++){ var n=parseInt(num);
 if(nameInTR[i].checked){alert('Установлен в строке № '+' '+n +' '+'в столбце № '+ (parseInt(i)+1));
  alert("Установлен ID"+''+nameInTR[i].getAttribute('id')); 
  }
 }
}
</script>
</head>
<body bgcolor="#ffffff">
  <Table width=30% id="tab1">
  <tr id=tr1><td><input type=checkbox name=check id=ch1 onClick="check_sort('tab1','tr1')">Колво чекбоксов</td><td><input type=checkbox name=check id=ch2 onClick="check_sort('tab1','tr1')">Колво чекбоксов</td></tr>   
  <tr id=tr2><td><input type=checkbox name=check id=ch3 onClick="check_sort('tab1','tr2')">Колво чекбоксов</td><td><input type=checkbox name=check id=ch4 onClick="check_sort('tab1','tr2')">Колво чекбоксов</td></tr>
  <tr id=tr3><td><input type=checkbox name=check id=ch5 onClick="check_sort('tab1','tr3')">Колво чекбоксов</td><td><input type=checkbox name=check id=ch6 onClick="check_sort('tab1','tr3')">Колво чекбоксов</td></tr>
  </Table>  
</body>
</html>

Просто создаешь массив и забиваешь его именами ID. Как обращатся, в коде указанно.

Добавлено @ 14:56 
Ну что, разобрался с проблемой?


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
rcdimon
Дата 7.10.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 766
Регистрация: 12.7.2004
Где: Москва

Репутация: нет
Всего: 2



почему у тебя привязка к таблице идет? Может у меня нет таблицы... 

Я же говорю.. есть чеки

<input type="checkbox" name="name" id="n1">
<input type="checkbox" name="name" id="n2">
<input type="checkbox" name="name" id="n3">
<input type="checkbox" name="name" id="n4">
<input type="checkbox" name="name" id="n5">
<input type="checkbox" name="name" id="n6">


И должен получиться массив... в котором записаны ID тех галочек, которые установлены


Это сообщение отредактировал(а) rcdimon - 7.10.2006, 15:12
PM MAIL ICQ   Вверх
12345c
Дата 7.10.2006, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Не вижу  в приведённом примере главного слова (getElenmentsByName), поэтому вот:

Код

<input type=checkbox name=chk[] id=in1 value=chk1 checked><br>
<input type=checkbox name=chk[] id=in2 value=chk2><br>
<input type=checkbox name=chk[] id=in3 value=chk3 checked><br>
<input type=checkbox name=chk[] id=in4 value=chk4><br>
<input type=checkbox name=chk[] id=in5 value=chk5 checked><br>
<input type=button value="Показать список id" onclick=ff()><br>
<script>ff=function(){
  aChk=document.getElementsByName('chk[]');
  a=[];
  for(i=0;i<aChk.length;i++)if(aChk[i].checked)a.push(aChk[i].id);
  alert(a)
}</script>



--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Ivushka
Дата 3.11.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 28.10.2005
Где: Москва

Репутация: нет
Всего: 2



12345c, у меня таже проблема а твой код 
Код

aChk=document.getElementsByName('chk[]');

не воспринимает(((
только без скобок работает но без них выводится пустота
Код

<loop name="kat" value="kateg"><!-- цикл  -->
    <input type="Checkbox" checked class="kat" name="kat[]" value="<print name="kateg:ElementID">"> <print name="kateg:ElementName"></br>
    <endloop>

--------------------
Программист - это диагноз!
PM MAIL ICQ   Вверх
12345c
Дата 7.11.2006, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



В каком браузере наблюдается? У меня работает во всех - IE6, FF1.07, Op7.54, 9.01.

В IE7 не выводится alert, но работает

Код
<script>ff=function(){
  aChk=document.getElementsByName('chk[]');
  a=[];
  for(i=0;i<aChk.length;i++)if(aChk[i].checked)a.push(aChk[i].id);
  document.getElementById('d1').innerHTML=a;
}</script>
<div id=d1></div>



--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0521 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.