[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получение массива выбранных checkbox'ов
Winston
Здравствуйте ! Теперь и я пришел за помощью smile.gif Проблема вот такая: есть форма с тремя боксами, при выборе одного я получаю ответ, что выбран такой - то бокс, а когда выбираю два, мне все равно выдает, что выбран один, если выберу 2 и 3 выдает 3, если 1 и 3, дает 3.

Вот код.
Свернутый текст
<?php
if ($_POST['go'])
{
echo 'Вы выбрали: '.$_POST['ch'];
}
?>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST">
<
input type="checkbox" name="ch" value="1">
<
input type="checkbox" name="ch" value="2">
<
input type="checkbox" name="ch" value="3">
<
input type="submit" name="go">
</
form>


Если написать:
if ($_POST['ch'] == 2 && $_POST['ch'] == 3) {echo 'Вы выбрали 2 и 3';}

Тоже не катит. Подскажите пожалуйста как это реализовать.



Спустя 13 минут, 26 секунд (6.02.2010 - 22:29) sergeiss написал(а):
Цитата (PHPprogramer @ 6.02.2010 - 23:16)
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST">
<input type="checkbox" name="ch" value="1">
<input type="checkbox" name="ch" value="2">
<input type="checkbox" name="ch" value="3">
<input type="submit" name="go">
</form>

Замени на
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST">
<input
type="checkbox" name="ch[]" value="1">
<input
type="checkbox" name="ch[]" value="2">
<input
type="checkbox" name="ch[]" value="3">
<input
type="submit" name="go">
</form>

Плюс к этому, задавай не только name, но и id.

$_POST['ch'] будет массивом. Поэкспериментируй smile.gif, и разберешься.

Спустя 13 минут, 20 секунд (6.02.2010 - 22:43) Winston написал(а):
sergeiss
Спасибо, вроде что - то вышло smile.gif добавил name="ch[]", а вот id я не могу понять для чего его вообще задают. Вот код который работает:

Свернутый текст
<?php
if ($_POST['go'])
{
echo 'Вы выбрали: <br/>';
for ($i = 0; $i < 4; $i++)
{
echo $_POST['ch'][$i]." ";
}
}

?>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST">
<
input type="checkbox" name="ch[]" value="1">
<
input type="checkbox" name="ch[]" value="2">
<
input type="checkbox" name="ch[]" value="3">
<
input type="submit" name="go">
</
form>

Он выдает уже что я выбрал, но теперь бы понять как в if'е задавать условие, что если в $_POST['ch'][1] && $_POST['ch'][3] {//делать то - то}

Спустя 19 минут, 36 секунд (6.02.2010 - 23:02) sergeiss написал(а):
Цитата (PHPprogramer @ 6.02.2010 - 23:43)
а вот id я не могу понять для чего его вообще задают

Если ты будешь обрабатывать поле в JS, то через функцию getElementById ты можешь получить доступ к его свойствам. Например, программно сменить значение одного поля ввода при изменении другого. Без id не получится.


Цитата (PHPprogramer @ 6.02.2010 - 23:43)
но теперь бы понять как в if'е задавать условие

Введи такую форму:

<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST">
<input
type="checkbox" name="ch[]" value="value1">
<input
type="checkbox" name="ch[]" value="value2">
<input
type="checkbox" name="ch[]" value="value3">
<input
type="submit" name="go">
</form>


Задавай разные сочетания выборки, и при обработке выводи данные через var_dump( $_POST['ch'] ). Должен догадаться в итоге, что делать с ИФом smile.gif

Спустя 15 часов, 17 минут, 46 секунд (7.02.2010 - 14:20) Winston написал(а):
Наконец - то, дошло что - то, уже получилось, и в if'е задать вроде выходит, правильно отображает то, что я выбрал, вот код:

Свернутый текст
<?php
if ($_POST['go'])
{
for ($i = 0; $i < count($_POST['ch']); $i++)
{
echo 'Вы выбрали ', $_POST['ch'][$i], '<br/>';
if ($_POST['ch'][$i] == 'Домен') {echo 1 * 10, '<br/>';}
if ($_POST['ch'][$i] == 'Ник') {echo 2 * 10, '<br/>';}
if ($_POST['ch'][$i] == 'Сервер') {echo 3 * 10, '<br/>';}
}
}

?>
<form action="<?=$_SERVER['SCRIPT_NAME']?>" method="POST">
<
input type="checkbox" name="ch[]" value="Домен">
<
input type="checkbox" name="ch[]" value="Ник">
<
input type="checkbox" name="ch[]" value="Сервер">
<
input type="submit" name="go">
</
form>

Спустя 2 часа, 24 минуты, 1 секунда (7.02.2010 - 16:44) Winston написал(а):
Появилась вторая проблема sad.gif Как можно найти в переменной русские символы ? Пробовал создавать массив с русскими символами, потом в foreach перебирал и проверял нет ли их в переменной, так ничего и не получилось sad.gif Как можно найти символ в переменной ? Про регулярные выражения не надо говорить я их не понимаю.

Спустя 1 час, 33 минуты, 42 секунды (7.02.2010 - 18:18) Winston написал(а):
sergeiss
Спасибо, что разъяснил про id smile.gif И еще, может кот сказать, последний код который я написал для получения боксов нормальный ? Или можно было бы сделать более лучше, если лучше то как ?

И на последний мой вопрос который я написал, так можно найти в переменной русские символы с помощью какой - то функции, или без регулярок не обойтись ?
Быстрый ответ:

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