X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> checkbox ы
Licoric
Licoric
Topic Starter сообщение 17.5.2009, 23:42; Ответить: Licoric
Сообщение #1


Хотел спросить:
Как передать значения всех отмеченных боксов?
С точками понятно - там или/или - передается одно значение. А если я 3 из 5 отметил, то как быть? Что делать?
<input name="byt" type="checkbox" value="">Телефон<br>
<input name="byt" type="checkbox" value="Тв">Телевизор<br>
<input name="byt" type="checkbox" value="Хо">Холодильник<br>
<input name="byt" type="checkbox" value="См">Стиральная машина
потом:
[php]$byt = $_POST[byt];[/php]Я так полагаю нужно каждому боксу свое имя давать? Или есть другой способ?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
goshikvia
goshikvia
сообщение 18.5.2009, 8:31; Ответить: goshikvia
Сообщение #2


конечно у каждого элемента будь то чекбокс или еще что должно быть свое уникальное имя!
А потом правильно через массив ПОСТ их доставать :)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Apay
Apay
сообщение 18.5.2009, 11:39; Ответить: Apay
Сообщение #3


<input name="byt[]" type="checkbox" value="">Телефон<br>
<input name="byt[]" type="checkbox" value="Тв">Телевизор<br>
<input name="byt[]" type="checkbox" value="Хо">Холодильник<br>
<input name="byt[]" type="checkbox" value="См">Стиральная машина
а в php обращаться
[php]if( in_array('Tф',$byt) ) echo 'Телефон есть!';[/php]

Добавил позже:
[php]$byt = $_POST['byt'];
if( in_array('Tф',$byt) ) echo 'Телефон есть!';[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmc
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
Licoric
Topic Starter сообщение 18.5.2009, 18:21; Ответить: Licoric
Сообщение #5


Спасибо за советы. Просто у точек есть "группа". Там одно имя. Я не подумал, что у "чексов" нет группы. Они просто находятся рядом и все. Для меня проще будет каждому чексу свое имя присвоить...)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 22.5.2009, 22:30; Ответить: 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>
<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 странички количество записей идет
[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
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
Licoric
Topic Starter сообщение 23.5.2009, 17:19; Ответить: Licoric
Сообщение #8


Не работает.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 23.5.2009, 17:33; Ответить: 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
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 для нее не устанавливается
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Скрипт для печати выбранного checkbox
0 lukas1984 4966 20.6.2015, 0:09
автор: -lukas1984-


 



RSS Текстовая версия Сейчас: 29.3.2024, 15:35
Дизайн