[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: javascript checkbox
luker
Есть такая проблемка(.

Есть табличка
HTML
<FORM name="fdata" method="post" action="">
<TABLE width="100%" border="1" cellspacing="1" cellpadding="2" class="edit">
<TR>
<TH class="edit" width="21%" align="right">Forwarders:</TH>
<TD class="edit" width="79%">
<?if($fdata['forwarders']){?>
<?foreach($fdata['forwarders'] as $key=>$forwarders) {?>
<B><?=$key?></B> ( Select:
<A class="action" href="javascript:void(0)" onclick="makeChecked('fdata', 'forwarders[]', true); return false;">All</a>,
<A class="action" href="javascript:void(0)" onclick="makeChecked('fdata', 'forwarders[]', false); return false;">None</a>
)<BR>
<?foreach($forwarders as $item) {?>
<div style="float:left;width:185px;">
<input type="checkbox" name="forwarders[]" value="<?=$item['id']?>" <?if($data['forwarder']){?><?foreach ($data['forwarder'] as $val){?><?=($val==$item['id'])? ' checked':''?><?}?><?}?>><?=$item['name']?> <?=$item['host']?>
</div>
<?}?>
<div style="clear: both;"></div>
<?}?>
<?}?>
</TD>
</TR>
</TABLE>
</Form>


и есть скрипт
HTML
function makeChecked(fm, el, st)
{
with(document.forms[fm]) {
if(typeof(elements[el]) != "object") return;
if(!elements[el].length) elements[el].checked = st;
else for(var i=0; i<elements[el].length; i++) elements[el][i].checked = st;
}
}


который отмечает все checkbox.

Теперь вопрос а как сделать чтобы отмечало не все а только те что находятся в одной группе?
Массив имеет вид.
PHP
Array
(
    [
AD] => Array
        (
            [
0] => Array
                (
                    [
id] => 1
                    
[group_id] => 1
                    
[name] => forwarder_a
                 
                
)

            [
1] => Array
                (
                    [
id] => 3
                    
[group_id] => 1
                    
[name] => forwarder
                   
                
)  
        )

    [
DM] => Array
        (
            [
3] => Array
                (
                    [
id] => 2
                    
[group_id] => 2
                    
[name] => forwarder_b
                 
)

        )




Спустя 1 час (9.07.2009 - 13:01) twin написал(а):
Поделить на группы. Дибавить к id их номера.

Спустя 43 минуты, 56 секунд (9.07.2009 - 13:45) luker написал(а):
и как?
решения уже конечно найдено но хотелось бы узнать и другии идеи.

Спустя 2 часа, 25 минут, 55 секунд (9.07.2009 - 16:11) PandoraBox2007 написал(а):
HTML
<script language="javascript" type="text/javascript">
<!--
function setCheckboxes(theForm, elementName, isChecked)
{
   var chkboxes = document.forms[theForm].elements[elementName];
   var count = chkboxes.length;

   if (count)
   {
       for (var i = 0; i < count; i++)
       {
           chkboxes[i].checked = isChecked;
       }
   } else {
    chkboxes.checked = isChecked;
   }
   return true;
}
//-->
</script>


Код
<form id="fdata" method="post">


Код
setCheckboxes('fdata', 'forwarders[]', true);
setCheckboxes('fdata', 'forwarders[]', false);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.