|
|
|
| ПОМОГИТЕ ПЛИЗ!!!
есть главный чекбокс
<input type=checkbox name=head>
|
есть еще 3 чекобокса (по умолчанию они disabled).Кол-во чекбоксов может быть разное.
<input type=checkbox name=1 disabled>
<input type=checkbox name=2 disabled>
<input type=checkbox name=3 disabled>
|
Как сделать чтобы при кликаньи на главный чекбокс(в положение checked) все остальные становятся enabled и checked, а при кликаньи на главный чекбокс(в положение unchecked) все остальные становятся disabled и unchecked.
Помогите плиз! Java script не знаю, а сделать очень нужно! | |
|
|
|
|
|
|
|
|
для: codexomega
(09.10.2005 в 14:01)
| | Спасибо. Но как его модернизировать, чтобы когда главный чекбокс off - все поля disabled?
И как это сделать без тега form? Помогите плиз! Очень надо! | |
|
|
|
|
|
|
|
для: off
(10.10.2005 в 16:11)
| |
function checkAll(field){
nb_checked=0;
for(n=0;n<field.length;n++){
if(field[n].checked==true)
nb_checked++;
}
if(nb_checked == field.length){
for (j = 0; j < field.length; j++) {
field[j].checked = (field[j].checked===true?false:true);
field[j].enabled = (field[j].enabled===true?false:true);
}
}
else{
for (j = 0; j < field.length; j++){
field[j].checked = true;
document.form1.check_all.checked=true;
}
}
}
|
| |
|
|
|
|
|
|
|
для: codexomega
(10.10.2005 в 20:36)
| | спасибо. но мне надо немнжко другое.
Как сделать чтобы при кликаньи на главный чекбокс(в положение on) все остальные становятся enabled и checked, а при кликаньи на главный чекбокс(в положение off) все остальные становятся disabled и unchecked.
И как это сделать без тега form (может при помощи id)? | |
|
|
|
|
|
|
|
для: off
(10.10.2005 в 21:23)
| | Теперь они становятся disabled.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CheckBoxes</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="javascript">
function checkAll(field){
nb_checked=0;
for(n=0;n<field.length;n++){
if(field[n].checked==true)
nb_checked++;
}
if(nb_checked == field.length){
for (j = 0; j < field.length; j++) {
field[j].checked = (field[j].checked===true?false:true);
field[j].disabled = (field[j].disabled===true?false:true);
}
}
else{
for (j = 0; j < field.length; j++){
field[j].checked = true;
field[j].disabled = false;
document.form1.check_all.checked=true;
}
}
}</script>
</head>
<body>
<form name="form1" id="form1" method="post" action="">
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#003399"><input type="checkbox" name="check_all" value="check_all" onclick="checkAll(document.form1.list)"/></td>
<td>cell 1</td>
<td>cell 2</td>
</tr>
<tr>
<td><input type="checkbox" name="list" value="1" disabled/></td>
<td>cell 3</td>
<td>cell 4</td>
</tr>
<tr>
<td><input type="checkbox" name="list" value="2" disabled/></td>
<td>cell 5</td>
<td>cell 6</td>
</tr>
<tr>
<td><input type="checkbox" name="list" value="3" disabled/></td>
<td>cell 7</td>
<td>cell 8</td>
</tr>
<tr>
<td><input type="checkbox" name="list" value="4" disabled/></td>
<td>cell 9</td>
<td>cell 10</td>
</tr>
</table>
</form>
</body>
</html>
|
Только чем вам форма мешает, не могу понять. С ней намного проще.
Притом вас никто не заставляет в форму вкладывать действие. Она может ничего не делать и это будет вполне корректно. | |
|
|
|
|
|
|
|
для: codexomega
(11.10.2005 в 22:55)
| | Интереснее так:
<input type=checkbox class=group name=c1 disabled><br>
<input type=checkbox class=group name=c2 disabled><br>
<input type=checkbox class=group name=c3 disabled><br>
<br>
<input type=checkbox name=common onclick=f(this)>
<script>function f(t){for(i in (d=document).all.tags('input')){if(d.all[i].className=='group'){with(d.all[i]){disabled=!(checked=t.checked);}}}}</script>
|
(name=число работать не будет) | |
|
|
|
|
|
|
|
для: 12345
(12.10.2005 в 02:00)
| | Огромное спасибо и codexomega и 12345!!!!
codexomega, нужно без тега form тк. есть несколько файлов с чекбоксами и они все вставляются includ'ом в одну большую форму. А как известно нельзя чтобы тэг form был в теге form.
Решил изпользовать вариант 12345. Огромное спасибо.
Только помоги еще немножко плиз :)
Как с помощью твоего кода сделать:
Если главный чекбокс checked все оставльные enabled, если нет, то disabled, причем изначально чекбксы (в том числе и главый) могут быть разными (т.е одни checked другие unchecked)...
Напрмер изначально в таком варианте:
<input type=checkbox class=group name=c1><br>
<input type=checkbox class=group name=c2 checked><br>
<input type=checkbox class=group name=c3><br>
<br>
<input type=checkbox name=common onclick=f(this)>
Это всего лишь пример... :)
|
ПЛИЗЗ!!! Еще раз огромное спасибо! | |
|
|
|
|
|
|
|
для: off
(12.10.2005 в 20:27)
| | Так даже проще по коду : )
<body onLoad=f(d.all.common)>
<input type=checkbox class=group name=c1><br>
<input type=checkbox class=group name=c2 checked><br>
<input type=checkbox class=group name=c3><br>
<br>
<input type=checkbox name=common onclick=f(this) checked>
<script>d=document;
function f(t){for(i in d.all.tags('input')){if(d.all[i].className=='group'){with(d.all[i]){disabled=!t.checked;}}}}
</script>
|
В зависимости от того, checked ли 'common', остальные чекбоксы устанавливаются в не-disabled. | |
|
|
|
|
|
|
|
для: 12345
(12.10.2005 в 22:56)
| | А можно как нить без <body>? Тк этих блоков (главный чекбокс и остальные) несколько,и они находятся в разных файлах и подключаются includ'ом в один главный (где body уже есть). | |
|
|
|
|
|
|
|
для: off
(13.10.2005 в 21:42)
| | <body> весьма желательно, потому что оно даёт знак загрузки всей страницы и (по идее) готовность структуры документа. Без него надо проверить на существование самого позднего анализируемого элемента (input; может быть, d.all.length ?) и запустить выставление f(d.all.common), если существует. Но не уверен, что будет корректно работать при разных скоростях загрузки. Проверь, но не советую:
<script>d=document;
function waitLoad(){
ww=setTimeout("if(typeof(d.all.length)!='undefined')f(d.all.common);else waitLoad();",500);}
function f(t){for(i in d.all.tags('input'))if(d.all[i].className=='group')with(d.all[i])disabled=!t.checked;}
| (заодно убраны лишние скобки) | |
|
|
|
|
|
|
|
для: 12345
(13.10.2005 в 23:14)
| | Огромное спасибо.Выручил!!
Все работает.
Вместо body onload сделал img onload/ | |
|
|
|
|
|
|
|
для: off
(20.10.2005 в 18:00)
| | Это может некорректно работать. Сделай лучше так, это то же, что в body ставить:
d.onload=function(){f(d.all.common);}
|
| |
|
|
|
|
|
|
|
для: 12345
(20.10.2005 в 20:28)
| | уважаемый 12345 а реально ли зделать чтобы числа работали в name= | |
|
|
|
|
|
|
|
для: sidPR
(25.10.2005 в 20:24)
| | А проверьте сами. Как элемент формы числа отправляются, но через document.all вызываться не хотят. Может, найдёте альтернативу. | |
|
|
|
|
|
|
|
для: 12345
(25.10.2005 в 20:36)
| | Хм... а как тагда зделать вот у меня система положем
<input type=checkbox class=group name=c$id value='off'>
$id номер поля из sql
$ids = "c$id";
ну и предположем
if (isset(c$id))
{
предположим добовляет в базу
}
а как зделать все чтобы в базу добовляло если все выделены? | |
|
|
|
|
|
|
|
для: sidPR
(25.10.2005 в 21:05)
| | (value='off' не пишут, оно по умолчанию вырабатывается on или off.)
Если выделены в смысле checked, то при передаче формы в $_GET будут все c1,c2, ... с "=on". isset() будут все, которые имеются в форме. Поэтому так проверять не имеет смысла - надо
if($_GET['c'.$id]=='on')добавить в базу, если выделен.
А вопрос в чём? | |
|
|
|
|
|
|
|
для: 12345
(26.10.2005 в 01:53)
| | Да у меня тут такая проблема немогу придумать как зделать передачу данных в другой файл
тоесть к примеру у меня идут
Index.php
<input type=checkbox class=group name=s$id value='off'>
<form name='form1' id='form1' method='post' action='add.php?$id'> <br>
<table border='1' cellpadding='4' cellspacing='0' style='border-collapse: collapse' id='AutoNumber1'>
<tr>
<td align='center'>
<input type=checkbox name=common onclick=f(this) value='off'></td>
|
$id это номер поля ..в mysql
add.php
mysql_pconnect("$host","$user","$password") or die("Немогу приконектиться к SQL-server");
mysql_select_db("$database");
$sql = "UPDATE '$table' SET 'status' = 'enable' WHERE 'id' = '$id' LIMIT 1" ;
mysql_query($sql);
header( "Location: scrin.php" );
|
Во как мне в add.php передать инфу от выделенных чекбоксов ? :( | |
|
|
|
|
|
|
|
для: sidPR
(26.10.2005 в 10:11)
| | точнее как узнать ID ВЫделеных :\ | |
|
|
|
|
|
|
|
для: sidPR
(26.10.2005 в 10:22)
| | У тебя нет у чекбоксов id, поэтому ты не можешь их узнать : )
Даже если бы были (<input ... checkbox id=aaa name=bbb>), форма передаст только bbb=on или bbb=off. Т.е. ты узнаёшь name его и .checked. Так как ты знаешь все name, которые послал на страницу, isset() не имеет большого смысла. Ещё раз повторюсь, что value=xxx при чекбоксе не имеет никакого смысла.
Если надо передать больше информации при выборе чекбокса, придётся использовать другие поля формы.
Да, а по вопросу - ты узнаёшь по значениям хэша $_GET, равным "on", все _ name _ выделенных чекбоксов (но не id). | |
|
|
|
|
|
|
|
для: 12345
(26.10.2005 в 12:49)
| | а какже мне быть я зделал типо как в пхпмуадмине чебоксы и при выделении их я хотел зделать кнопочку удаления и добовления и вот незнаю как зделать вот :( ... как передать значения =\ | |
|
|
|
|
|
|
|
для: sidPR
(26.10.2005 в 12:56)
| | стоп можно же зделать типо того
вот отмеченны какието чекбоксы ну и передаеться инфа в этот файл
положем все чекбоксы name="s$id" а тоесть все имена будут такого вида s12 ну все числа
из етого следует что можно воспользоваться регуляркой
типо $id = "Вырезаем букву s из всех немов";
ну и получаеться что $id = 12
ну а дальше идет мол конект
mysql_pconnect("$host","$user","$password") or die("Немогу приконектиться к SQL-server");
mysql_select_db("$database");
$sql = "UPDATE '$table' SET 'status' = 'enable' WHERE 'id' = '$id' LIMIT 1" ;
mysql_query($sql);
header( "Location: scrin.php" );
|
Подскажите как зделать такое регулярное выражение если я правильно мыслю должно получиться же веть =\ | |
|
|
|
|
|
|
|
для: sidPR
(26.10.2005 в 14:12)
| | Вообще, тут я вижу некоторое непонимание того, зачем нужно имя-не-число при name. Оно нужно было только для JS. Если ты используешь его для формы, то ничего не мешает писать число.
Далее, ты получаешь хеш-таблицу в $_GET при приёме формы. Отыскиваешь в ней имена-числа, и вот тебе те $id, которые ставишь в запрос.
Если даже делаешь имя вида $nn ==== "s$id", то Р.Выр. не надо, достаточно просто $id=substr($nn,1); (Как доставать $nn из $_GET, это уж сам пиши.) | |
|
|
|
|
|
|
|
для: 12345
(26.10.2005 в 15:04)
| | я не ас .. незнаю как все это зделать можете написать как мне это зделать? пожалуйста заранее благодарен! | |
|
|
|
|
|
|
|
для: sidPR
(26.10.2005 в 16:55)
| | Не могу, т.к. задачи не знаю и она не моя. Форум используется для подсказок, обмена опытом или самовыражения. Одно из этого я уже сделал : ) | |
|
|
|
|
|
|
|
для: 12345
(26.10.2005 в 17:44)
| | Тогда подскажите хотя бы каким макаром ID передасться в другой файл вот у меня
есть пару чеков выделенных в из формы то только известной будет ее Name и off или on .... | |
|
|
|
|
|
|
|
для: sidPR
(26.10.2005 в 19:48)
| | Про какой ID идёт речь? $id или id из HTML? Если второе, то...
Нет смысла делать эту операцию буквально. Ты же знаешь соответствие name и id, поэтому из name его получаешь.
Если $id, то...
он есть часть name, которое извлекаешь по array_keys( $_GET) . (См. мануал PHP) Возможно, все затруднения от незнания того, что передаётся в $_GET ? Туда передаются все параметры формы в парах вида name - value. | |
|
|
|