Помощник
|
checkbox ы |
Licoric
|
Сообщение
#1
|
||
|
|
||
|
|||
goshikvia |
18.5.2009, 8:31;
Ответить: goshikvia
Сообщение
#2
|
|
конечно у каждого элемента будь то чекбокс или еще что должно быть свое уникальное имя!
А потом правильно через массив ПОСТ их доставать :) |
|
|
Apay |
18.5.2009, 11:39;
Ответить: Apay
Сообщение
#3
|
|
<input name="byt[]" type="checkbox" value="Tф">Телефон<br> а в php обращаться<input name="byt[]" type="checkbox" value="Тв">Телевизор<br> <input name="byt[]" type="checkbox" value="Хо">Холодильник<br> <input name="byt[]" type="checkbox" value="См">Стиральная машина [php]if( in_array('Tф',$byt) ) echo 'Телефон есть!';[/php] Добавил позже: [php]$byt = $_POST['byt']; if( in_array('Tф',$byt) ) echo 'Телефон есть!';[/php] |
|
|
mmc |
18.5.2009, 12:47;
Ответить: mmc
Сообщение
#4
|
|
<script language=JavaScript title="check"> function CheckAll(Element,Name){ if(document.getElementById) { thisCheckBoxes = Element.parentNode.parentNode.parentNode.getElementsByTagName('input'); for (i = 1; i < thisCheckBoxes.length; i++){ if (thisCheckBoxes[i].name == Name){ thisCheckBoxes[i].checked = Element.checked; Colorize(document.getElementById(thisCheckBoxes[i].id.replace('cb','tr')), thisCheckBoxes[i]); } } } } function Colorize(Element, CBElement){ if(document.getElementById) { if(Element && CBElement){ Element.className = ( CBElement.checked ? 'selected' : 'default' ); } } } function CheckRadioTR(Element){ if(document.getElementById) { CheckTR(Element); thisTRs = Element.parentNode.getElementsByTagName('tr'); for (i = 0; i < thisTRs.length; i++){ if (thisTRs[i].id != Element.id && thisTRs[i].className != 'header') thisTRs[i].className = 'default'; } } } function CheckTR(Element){ if(document.getElementById) { thisCheckbox = document.getElementById(Element.id.replace('tr','cb')); thisCheckbox.checked = !thisCheckbox.checked; Colorize(Element, thisCheckbox); } } function CheckCB(Element){ if(document.getElementById) { if(document.getElementById(Element.id.replace('cb','tr'))){Element.checked = !Element.checked;} } } </SCRIPT> кнопка отметить все: <input type="checkbox" onclick="CheckAll(this,'ids')" value="checkbox"/> сами кнопке: <input type="checkbox" onclick="return CheckCB(this);" name="ids" value="checkbox"/> ids и передавать )) \\верстал как-то для авто портала... |
|
|
Licoric
|
Сообщение
#5
|
|
Спасибо за советы. Просто у точек есть "группа". Там одно имя. Я не подумал, что у "чексов" нет группы. Они просто находятся рядом и все. Для меня проще будет каждому чексу свое имя присвоить...)
|
|
|
Licoric
|
Сообщение
#6
|
|
any problem:
Есть страничка http://allpiter.info/residential/add_buy.php Туда по средствам запроса к базе выводятся id и значение (станции метро) [php] $query = "SELECT * FROM `metro` ORDER BY `metro`.`metro_name` ASC"; $result = $db->query($query); $num_results2 = $result->num_rows; for ($i=0; $i <$num_results2; $i++) { $row = $result->fetch_assoc(); $idm = stripslashes($row['id_metro']); $name = stripslashes($row['metro_name']); echo " <input name='$idm' type='checkbox' value='$name'>$name<br> "; } echo "<input name='kolmet' type='hidden' value='$num_results2'>"; [/php]Вроде как получается <input name='6' type='checkbox' value='Автово'>Автово<br> И внизу php странички количество записей идет<input name='12' type='checkbox' value='Балтийская'>Балтийская<br> <input name='15' type='checkbox' value='Владимирская'>Владимирская<br> <input name='11' type='checkbox' value='Волковская'>Волковская<br> <input name='7' type='checkbox' value='Кировский Завод'>Кировский Завод<br> <input name='5' type='checkbox' value='Ленинский проспект'>Ленинский проспект<br> <input name='10' type='checkbox' value='Нарвская'>Нарвская<br> [php]echo "<input name='kolmet' type='hidden' value='$num_results2'>";[/php]Пока писал понял, что количество записей и id то разные вещи. Но это я исправлю (есть совпадающие id, посему работать должно). Не в этом суть. На другой страничке (обработка) - я хочу вывести отмеченные метро автоматом. Один фиг пустые даже пробел не дают. Поэтому ими так вот пренебрегаю: [php] $kolmet = $_POST['kolmet']+1; echo "$kolmet<br><br>"; for ($idm=1; $idm <$kolmet; $idm++) { $metroname = $_POST['$idm']; echo "$idm Название станции метро: $metroname <br>"; } [/php]Тут мы берем общее количество записей, выведенных на страницу и извлекаем из одноименных переменных названия станций. Но что-то не работает... По моей логике должно быть: id станции - имя выглядит как "5 - ленинский проспект". 5 это имя переменной. В обработчике на второй странице пытаюсь извлечь из 5 значение - не получается. ps надо только переделать значение из количества записей на максимальный id (ибо станции могут меняться, добавляться и редактироваться). Надеюсь понятно объяснил. |
|
|
Apay |
23.5.2009, 8:26;
Ответить: Apay
Сообщение
#7
|
|
в таком виде работать не будет, чтоб работало, надо сделать
[PHP]$query = "SELECT * FROM `metro` ORDER BY `metro`.`metro_name` ASC"; $result = $db->query($query); $num_results2 = $result->num_rows; for ($i=0; $i <$num_results2; $i++) { $row = $result->fetch_assoc(); //$idm = stripslashes($row['id_metro']); $idm = $i+1; $name = stripslashes($row['metro_name']); echo " <input name='$idm' type='checkbox' value='$name'>$name<br> "; } echo "<input name='kolmet' type='hidden' value='$num_results2'>"; [/PHP] |
|
|
Licoric
|
Сообщение
#8
|
|
Не работает.
|
|
|
Licoric
|
Сообщение
#9
|
|
Форма:
[php]include ("../config.php"); include ("../mysqlout.php"); $query = "SELECT * FROM `metro` ORDER BY `metro`.`metro_name` ASC"; $result = $db->query($query); $num_results2 = $result->num_rows; for ($i=0; $i <$num_results2; $i++) { $row = $result->fetch_assoc(); // $idm = stripslashes($row['id_metro']); $idm = $i+1; $name = stripslashes($row['metro_name']); echo " <input name='metro_$idm' type='checkbox' value='$name'>$name<br> "; }[/php]Обработчик [php]include ("../config.php"); include ("../mysqlout.php"); $query2 = "SELECT id_metro FROM `metro` ORDER BY `metro`.`id_metro` DESC LIMIT 0 , 1"; $result2 = $db->query($query2); $num_results2 = $result2->num_rows; for ($i=0; $i <$num_results2; $i++) { $row2 = $result2->fetch_assoc(); $idm = stripslashes($row2['id_metro']); } echo "Максимальный id = $idm<br><br>"; $idm = $idm + 1; for ($i=1; $i <$idm; $i++) { $metroname = $_POST['metro_$i']; echo "$i Название станции метро: $metroname <br><br> "; }[/php]Подумал, что проблемы могут быть в именах. Их нет. Выводится id станции и название. Когда извлекаю из ОДНОИМЕННОЙ переменной значение - пусто... ps в обработчике echo "$i Название станции метро: $metroname = $ _POST['metro_$i'];<br>"; дает 16 Название станции метро: = $ _POST['metro_16']; Как и надо... но не работает
17 Название станции метро: = $ _POST['metro_17']; 18 Название станции метро: = $ _POST['metro_18']; 19 Название станции метро: = $ _POST['metro_19']; |
|
|
Apay |
23.5.2009, 18:05;
Ответить: Apay
Сообщение
#10
|
|
все в предложенном мной варианте должно работать, единственное - есть ошибка в обработчике формы, надо писать не
[php]$metroname = $_POST['$idm'];[/php]а [php]$metroname = $_POST[$idm];[/php] еще хорошо бы проверку встроить: [PHP]if( isset($_POST[$idm]) ){ ... } [/PHP] т.к. если чекбокс не отмечен, то переменная $_POST для нее не устанавливается |
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Скрипт для печати выбранного checkbox | 0 | lukas1984 | 4970 | 20.6.2015, 0:09 автор: -lukas1984- |
Текстовая версия | Сейчас: 26.4.2024, 7:19 |