|
|
|
| Имеется у меня вот такой вот select
<select class="input" type=text name=rooms>
<option value=0 <?php if($_POST['rooms']==0) echo "selected"; ?>>любое
<option value=4 <?php if($_POST['rooms']==4) echo "selected"; ?>>4/3
<option value=5 <?php if($_POST['rooms']==5) echo "selected"; ?>>5/4
</select>
|
Через который ведется поиск по стобцу таблицы базы.
if(isset($_POST['search']))
{
?>
<a name=table></a>
<?php
// Флаг равен true, если есть хотя бы один критерий поиска
$is_query = false;
// Проверяем наличие и число параметров поиска
$tmp1 = $tmp2 = $tmp3 = $tmp3 = $tmp4 = $tmp5 = $tmp6 = $tmp7 = $tmp8 =
$tmp9 = $tmp10 = $tmp11 = $tmp12 = $tmp13 = $tmp14 = $tmp15 = $tmp16="";
...
if(!empty($_POST['rooms'])) $tmp8 = " and rooms=".$_POST['rooms'];
...
$query = "SELECT * FROM products
WHERE hide='show'
".$tmp11.$tmp1.$tmp2.$tmp3.$tmp4.$tmp5.$tmp6.$tmp7.$tmp8.
$tmp9.$tmp10.$tmp12.$tmp13.$tmp14.$tmp15.$tmp16."
ORDER BY currency";
...
<td> ".$par['rooms']."</td>
|
Как можно в этом случае вместо select организовать чекбоксы?
<input name="Name" type="checkbox" value="ON">
|
Сооветственно, поиск идёт по чекбоксам ON, а по OFF нет. | |
|
|
|
|
|
|
|
для: Vova
(16.06.2006 в 12:30)
| | А для какой цели? Чтобы можно было сразу несколько выбрать? Тогда удобнее воспользоваться мульти-списком в котором можно выбрать несколько позиций зажимая клавишу Ctrl. | |
|
|
|
|
|
|
|
для: cheops
(16.06.2006 в 15:14)
| | Да, чтобы можно было выбирать несколько значений из списка. Если мультисписком, то тоже как это организовать в моём примере? | |
|
|
|
|
|
|
|
для: Vova
(16.06.2006 в 15:54)
| | Добавьте в тэг select атрибуты multiple size='7'
<select multiple size='7' class="input" type=text name=rooms>
<option value=0 <?php if($_POST['rooms']==0) echo "selected"; ?>>любое
<option value=4 <?php if($_POST['rooms']==4) echo "selected"; ?>>4/3
<option value=5 <?php if($_POST['rooms']==5) echo "selected"; ?>>5/4
</select>
|
| |
|
|
|
|
|
|
|
для: cheops
(17.06.2006 в 00:33)
| | Да, мульти появилось, но выбор по нескольким значениям не работает. Выбираю, допустим 4 и 5, а поиск идёт только по одному значению - 4. | |
|
|
|
|
|
|
|
для: Vova
(18.06.2006 в 18:20)
| | А вы как обрабатываете результаты из HTML-формы? | |
|
|
|
|
|
|
|
для: cheops
(18.06.2006 в 22:17)
| | Вот таким образом (отрывок из кода)
if(isset($_POST['search']))
{
?>
<a name=table></a>
<?php
// Флаг равен true, если есть хотя бы один критерий поиска
$is_query = false;
// Проверяем наличие и число параметров поиска
$tmp1 = $tmp2 = $tmp3 = $tmp3 = $tmp4 = $tmp5 = $tmp6 = $tmp7 = $tmp8 =
$tmp9 = $tmp10 = $tmp11 = $tmp12 = $tmp13 = $tmp14 = $tmp15 = $tmp16="";
...
if(!empty($_POST['rooms'])) $tmp8 = " and rooms=".$_POST['rooms'];
...
$query = "SELECT * FROM products
WHERE hide='show'
".$tmp11.$tmp1.$tmp2.$tmp3.$tmp4.$tmp5.$tmp6.$tmp7.$tmp8.
$tmp9.$tmp10.$tmp12.$tmp13.$tmp14.$tmp15.$tmp16."
ORDER BY currency";
...
<td> ".$par['rooms']."</td>
|
| |
|
|
|
|
|
|
|
для: Vova
(19.06.2006 в 10:52)
| | Вот ещё что, имя тэга select следует сделать массивом - rooms[], тогда код обработки должен выгядеть примерно так
<form method=post>
<select multiple size='7' class="input" type=text name=rooms[]>
<option value=0 <?php if($_POST['rooms']==0) echo "selected"; ?>>любое
<option value=4 <?php if($_POST['rooms']==4) echo "selected"; ?>>4/3
<option value=5 <?php if($_POST['rooms']==5) echo "selected"; ?>>5/4
</select>
<input type=submit value="Отправить">
</form>
<?php
if(!empty($_POST['rooms'])) $tmp8 = " and rooms IN (".implode(",",$_POST['rooms']).")";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(19.06.2006 в 11:16)
| | Вот мой код
<select multiple size='7' class="input" type=text name=pit[]>
<option value='none' <?php if($_POST['pit']=='none') echo "selected"; ?>>любое
<option value='AL' <?php if($_POST['pit']=='AL') echo "selected"; ?>>AL
<option value='HB' <?php if($_POST['pit']=='HB') echo "selected"; ?>>HB
<option value='UAL' <?php if($_POST['pit']=='UAL') echo "selected"; ?>>UAL
</select>
|
и обработка
if(!isset($_POST['pit']) && $_POST['pit']!='none')
$tmp1 = " and pit IN (".implode(",",$_POST['pit']).")";
|
Выбираю значение, поиск не приосходит - ищётся по любому значению. | |
|
|
|
|
|
|
|
для: Vova
(19.06.2006 в 14:00)
| | А... это же у нас строковые значения... исправьте код следующим образом
<?php
if(!isset($_POST['pit']) && $_POST['pit']!='none')
{
foreach($_POST['pit'] as $key = $value)
{
$_POST['pit'][$key] = "'$value'";
}
$tmp1 = " and pit IN (".implode(",",$_POST['pit']).")";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(19.06.2006 в 19:03)
| | Исправил всё в точности так - но у меня появляется белый экран. Видимо какая-то ошибка? | |
|
|
|
|
|
|
|
для: cheops
(19.06.2006 в 19:03)
| | >А... это же у нас строковые значения... исправьте код
>следующим образом
>
<?php
> if(!isset($_POST['pit']) && $_POST['pit']!='none')
> {
> foreach($_POST['pit'] as $key = $value)
> {
> $_POST['pit'][$key] = "'$value'";
> }
> $tmp1 = " and pit IN
>(".implode(",",$_POST['pit']).")";
> }
>?>
|
Чего-то я условия не пойму, по человечески получается
== Если не существует параметра $_POST['pit'] и параметр $_POST['pit'] не нулевой тогда выполняется цикл.==
Может опечатка закралась??
<?php
if( isset($_POST['pit']) && $_POST['pit']!='none') //или if( !isset($_POST['pit']) || $_POST['pit']!='none')
{
foreach($_POST['pit'] as $key = $value)
{
$_POST['pit'][$key] = "'$value'";
}
$tmp1 = " and pit IN (".implode(",",$_POST['pit']).")";
}
?>
|
| |
|
|
|
|
|
|
|
для: hell_riser
(19.06.2006 в 23:49)
| | Что первый вариант, что второй - белый экран.
Ищет только в варианте без массива
<select multiple size='7' class="input" type=text name=pit>
|
и
if(isset($_POST['pit']) && $_POST['pit']!='none')
$tmp1 = " and pit='".$_POST['pit']."'";
|
но только одно выбранное значение. Поиск по нескольким выбранным не происходит. | |
|
|
|
|
|
|
|
для: Vova
(21.06.2006 в 16:52)
| | И всё же у меня так и не получилось поиск сразу по нескольким значениям и так и так пробовал выдаёт белый экран (видимо ошибка) либо ищет только по одному значению. Помогите, кто может ) | |
|
|
|