Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Выделение чекбоксов с разными именами

Сообщения:  [1-10]    [11-20]  [21-24] 

 
 автор: sim5   (08.07.2009 в 19:50)   письмо автору
 
   для: HelloMoto   (08.07.2009 в 19:43)
 

Естественно, так как достигая нужного нам элемента, итерация цикла не равна индексу элемента (для повторяющихся индексов)

  Ответить  
 
 автор: HelloMoto   (08.07.2009 в 19:48)   письмо автору
 
   для: sim5   (08.07.2009 в 19:43)
 

Всё супер!!! Спасибо, sim5, за помощь и что не пожалел своего времени!
Удачи!

  Ответить  
 
 автор: sim5   (08.07.2009 в 19:43)   письмо автору
 
   для: HelloMoto   (08.07.2009 в 19:25)
 

Тьфу ... с этими индексами, забыл про них.... перепишите строку в цикле так:
if (f[i].name.substr(9) == e) f[i].checked = c;

  Ответить  
 
 автор: HelloMoto   (08.07.2009 в 19:43)   письмо автору
 
   для: HelloMoto   (08.07.2009 в 19:25)
 

так работает -

<script> 
function selectGroup(f, e, c) { 

  for(i=0; i<f.length; i++) {
    if (f[i].name == "items["+i+"]."+e)  f[i].checked = c;
  }

</script>    
<form name="form" action="" method="post">    
<pre>    
  Выбрать все книги<input type="checkbox" onClick="selectGroup(this.form.elements, 'book', this.checked)">    
  Книга 1 <input id='b1' type='checkbox' value='yes' name='items[1].book'>     
  Книга 2 <input id='b2' type='checkbox' value='yes' name='items[2].book'>     
  Книга 3 <input id='b3' type='checkbox' value='yes' name='items[3].book'>    
    
    Выбрать все ручки<input type="checkbox" onClick="selectGroup(this.form.elements, 'pen', this.checked)">    
  Ручка 1 <input id='p1' type='checkbox' value='yes' name='items[5].pen'>     
  Ручка 2 <input id='p2' type='checkbox' value='yes' name='items[6].pen'>     
  Ручка 3 <input id='p3' type='checkbox' value='yes' name='items[7].pen'>   
    
    Выбрать всех оленей <input type="checkbox" onClick="selectGroup(this.form.elements, 'deer', this.checked)">    
  Олень 1 <input id='d1' type='checkbox' value='yes' name='items[9].deer'>     
  Олень 2 <input id='d2' type='checkbox' value='yes' name='items[10].deer'>     
  Олень 3 <input id='d3' type='checkbox' value='yes' name='items[11].deer'>   
</pre>    
</form> 


но это блин ен совсем то....индексы должны повторяцца, как в первом случае.

  Ответить  
 
 автор: HelloMoto   (08.07.2009 в 19:25)   письмо автору
 
   для: sim5   (08.07.2009 в 19:13)
 

sim5, спасибо огромное!!
Работает тока с книгами. Почему-то с ручками и оленями не пашет. ХМ! Странно.. вроде должно...

  Ответить  
 
 автор: sim5   (08.07.2009 в 19:13)   письмо автору
 
   для: HelloMoto   (08.07.2009 в 18:37)
 

Ну надо было сразу сказать, что не РНР, а то я бочку накатил.) Ну можно так:
<script>
function selectGroup(f, e, c) {
  for(i=1; i<f.length; i++)
    if (f[i].name == "items["+i+"]."+e) f[i].checked = c; 
}
</script>   
<form name="form" action="" method="post">   
<pre>   
  Выбрать все книги<input type="checkbox" onClick="selectGroup(this.form.elements, 'book', this.checked)">   
  Книга 1 <input id='b1' type='checkbox' value='yes' name='items[1].book'>    
  Книга 2 <input id='b2' type='checkbox' value='yes' name='items[2].book'>    
  Книга 3 <input id='b3' type='checkbox' value='yes' name='items[3].book'>   
   
    Выбрать все ручки<input type="checkbox" onClick="selectGroup(this.form.elements, 'pen', this.checked)">   
  Ручка 1 <input id='p1' type='checkbox' value='yes' name='items[1].pen'>    
  Ручка 2 <input id='p2' type='checkbox' value='yes' name='items[2].pen'>    
  Ручка 3 <input id='p3' type='checkbox' value='yes' name='items[3].pen'>  
   
    Выбрать всех оленей <input type="checkbox" onClick="selectGroup(this.form.elements, 'deer', this.checked)">   
  Олень 1 <input id='d1' type='checkbox' value='yes' name='items[1].deer'>    
  Олень 2 <input id='d2' type='checkbox' value='yes' name='items[2].deer'>    
  Олень 3 <input id='d3' type='checkbox' value='yes' name='items[3].deer'>  
</pre>   
</form>

Проверяются все элементы формы (передаются первым аргументом) с именем необходимым (второй аргумент). Третий аргумент я передал на всякий случай - это текущее состояние управляющего чекбокса, именно оно и присваивается группе. А вдруг вам захочется этим же чекбоксом разотметить группу. Если не надо, то выбросить третий аргумент и приписывать явно - true.
Можно и первый аргумент не передавать, а определять в функции: по индексу формы на странице, по ее имени, по id. Ну в общем, думаю, вы это знаете, измените, если что.

  Ответить  
 
 автор: HelloMoto   (08.07.2009 в 18:37)   письмо автору
 
   для: sim5   (08.07.2009 в 18:31)
 

sim5, юзаю не ПХП, а Java + куча всякой дряни. Повторяю ещё раз - на серваке всё хорошо! :)

Вопрос в силе.

  Ответить  
 
 автор: sim5   (08.07.2009 в 18:31)   письмо автору
 
   для: HelloMoto   (08.07.2009 в 18:29)
 

А зря уверены. Отметьте все свои чекбоксы и отправьте форму, сделав проверку на своем локальном сервере:
<?
echo "<pre>";
print_r($_POST);
echo 
"</pre>";
?>

<form action="" method="post"><pre>    
  <pre>   
  Выбрать все книги<input type='checkbox' name='sel_all'>   
  Книга 1 <input id='b1' type='checkbox' value='yes' name='items[1].book'>   
  Книга 2 <input id='b2' type='checkbox' value='yes' name='items[2].book'>   
  Книга 3 <input id='b3' type='checkbox' value='yes' name='items[3].book'>   
   
    Выбрать все ручки<input type='checkbox' name='sel_all'>   
  Ручка 1 <input id='p1' type='checkbox' value='yes' name='items[1].pen'>   
  Ручка 2 <input id='p2' type='checkbox' value='yes' name='items[2].pen'>   
  Ручка 3 <input id='p3' type='checkbox' value='yes' name='items[3].pen'>  
   
    Выбрать всех оленей <input type='checkbox' name='sel_all'>   
  Олень 1 <input id='d1' type='checkbox' value='yes' name='items[1].deer'>   
  Олень 2 <input id='d2' type='checkbox' value='yes' name='items[2].deer'>   
  Олень 3 <input id='d3' type='checkbox' value='yes' name='items[3].deer'> 
  <input type="submit" value="Send">   
</pre></form>

И что у вас в итоге?

  Ответить  
 
 автор: HelloMoto   (08.07.2009 в 18:29)   письмо автору
 
   для: sim5   (08.07.2009 в 18:21)
 

да уверен.
sim5,спасибо за ваше беспокойство, но сорри.. мне нужна помощь в другом, а не в том, что я получу на серваке :)
я поэтому и обратился с этим вопросм на этот форум ибо не получилось у меня реализовать желаемое, то есть когда имена типа items[1].book, ну то есть с индексами...

  Ответить  
 
 автор: sim5   (08.07.2009 в 18:21)   письмо автору
 
   для: HelloMoto   (08.07.2009 в 18:16)
 

Вы уверени что ГУТ? При выборе всех чекбоксов во всех трех группах, на сервере вы получите вот такое:
Array
(
    [items] => Array
        (
            [1] => yes
            [2] => yes
            [3] => yes
        )

)

Сомневаюсь чтобы вы из этого поняли, что выбрал клиент.

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-24] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования