Модератор: Модераторы разделов
Dimon93rus
Сообщения: 428
Статус: Kernel Killer
Сообщение
Dimon93rus » 15.04.2008 13:32
В общем суть проблемы:
Из MySQL выводятся таблица с записями, каждой строке соответсвует свой checkbox.
Необходимо по событию (например onClick на "главном" checkbox'е) выбрать сразу все checkbox'ы без перезагрузки страницы.
Я кое-как слепил функцию на Яве, но она работает только с фиксированными числом и именами checkbox'ов.
Может знатоки помогут переделать?
Код:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" >
</head>
<body>
<script language="JavaScript">
<!--
function chk1() {
if (document.chkform.al.checked){
document.chkform.c1.checked=true;
document.chkform.c2.checked=true;
}
else {
document.chkform.c1.checked=false;
document.chkform.c2.checked=false;
}
}
//-->
</script>
<form name="chkform">
<input type="checkbox" name="al" onClick="chk1()">Включить все<BR>
<input type="checkbox" name="c1"> Переключатель 1 <BR>
<input type="checkbox" name="c2"> Переключатель 2
</form>
</body>
</html>
Ubuntu Server 10.04 x86, Calculate Linux 11.6 x86
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Сообщение
serzh-z » 15.04.2008 13:46
Полагаю, что всё же имелся в виду Javascript.
Я делаю это так (с использованием библиотеки Prototype):
Код: Выделить всё
function toggleCheckAll(checked) {
$$("#form input[type=checkbox]").each(
function(item) {
item.checked = checked;
}
);
}Где "form" - это ID контейнера содержащего флажки, состояние которых нужно изменить. Разумеется на пресловутом "главном" флажке должен быть установлен обработчик "toggleCheckAll(this.checked)". Думаю - идея понятна.
Dimon93rus
Сообщения: 428
Статус: Kernel Killer
Сообщение
Dimon93rus » 15.04.2008 16:31
Простите меня конечно за безграмотность (т.к. с Javascript у меня пока туговато), но у меня что-то не получается......
В моём случае контейнер содержащий checkbox'ы называется chkform, я заменил значение как вы и писали, но ...... увы....
В чём может быть проблема?
Ubuntu Server 10.04 x86, Calculate Linux 11.6 x86
Dimon93rus
Сообщения: 428
Статус: Kernel Killer
Сообщение
Dimon93rus » 16.04.2008 11:47
Всё, я решил свою проблему.
Привожу скрипт:
Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Check all checkboxes</title>
<script>
function toggleCheckAll(blnCheck) {
var el;
for( var i=0; i<document.forms["myForm"].elements.length; i++ ) {
el = document.forms["myForm"].elements[i];
if( el.type == "checkbox") {
el.checked = blnCheck;
}
}
}
</script>
</head>
<body>
<form name="myForm">
Check All<input type="checkbox" name="checkAll" onclick="toggleCheckAll(this.checked);"><br><br><br>
Checkbox name print-0 <input type="checkbox" name="print-0"><br>
Checkbox name print-1 <input type="checkbox" name="print-1"><br>
Checkbox name print-2 <input type="checkbox" name="print-2"><br>
Checkbox name print-3 <input type="checkbox" name="print-3"><br>
Checkbox name print-4 <input type="checkbox" name="print-4"><br>
Checkbox name print-5 <input type="checkbox" name="print-5"><br>
Checkbox name print-6 <input type="checkbox" name="print-6"><br>
Checkbox name print-7 <input type="checkbox" name="print-7"><br>
Checkbox name print-8 <input type="checkbox" name="print-8"><br>
Checkbox name print-9 <input type="checkbox" name="print-9"><br>
Checkbox name print-10 <input type="checkbox" name="print-10"><br>
Checkbox name print-11 <input type="checkbox" name="print-12"><br>
Checkbox name print-12 <input type="checkbox" name="print-15"><br>
</form>
</body>
</html>
Количество checkbox'ов может быть произвольным.......
Проблема решена, и тема может быть закрыта.
Ubuntu Server 10.04 x86, Calculate Linux 11.6 x86