|
|
|
| Имеется код, который выбирает из предоставленного списка значения
<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>
|
Т.е. я выбираю AL - у меня из базы выбираются значения AL, если HB и AL одновременно - то HB и AL.
Обработка
<?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']).")";
}
?>
|
Но у меня в обработке видимо какая-то ошибка, т.к. выдает белую страницу. Не пойму, где тут ошибка... | |
|
|
|
|
|
|
|
для: Vova
(17.07.2006 в 13:29)
| | А у в if-блок идёт заход? Поставьте проверку
<?php
echo "out<br>";
if(!isset($_POST['pit']) && $_POST['pit']!='none')
{
echo "in<br>";
foreach($_POST['pit'] as $key = $value)
{
$_POST['pit'][$key] = "'$value'";
}
$tmp1 = " and pit IN (".implode(",",$_POST['pit']).")";
}
?>
|
Что выводится? | |
|
|
|
|
|
|
|
для: cheops
(17.07.2006 в 13:38)
| | Выводится белый экран
Если ставлю
if(isset($_POST['pit']) && $_POST['pit']!='none')
$tmp1 = " and pit='".$_POST['pit']."'";
|
То ищется только по одному выбранному значению. Но мне надо, чтобы искалось по выбранным нескольким значениям. | |
|
|
|
|
|
|
|
для: Vova
(17.07.2006 в 14:01)
| | Т.е. погодите, а "out" выводит? | |
|
|
|
|
|
|
|
для: cheops
(17.07.2006 в 14:47)
| | Чистый белый экран, ничего нету. Может где-то прописать в начале, что за ошибка, чтобы ошибка выводилась? | |
|
|
|
|
|
|
|
для: Vova
(17.07.2006 в 14:51)
| | У вас только этот пример с MySQL не работает или белый экран появлется при обращении к любым mysql-функциям? | |
|
|
|
|
|
|
|
для: cheops
(17.07.2006 в 14:54)
| | Если вместо того фрагмента ставлю этот
if(isset($_POST['pit']) && $_POST['pit']!='none')
$tmp1 = " and pit='".$_POST['pit']."'";
|
То всё работает. Получается, что только этот фрагмент не работает...
В том фрагменте ошибка какая-то...
Другие функции работают | |
|
|
|
|
|
|
|
для: Vova
(17.07.2006 в 14:57)
| | Может здесь не and , а or нужен?
(c соответствующим левым умалчиваемым значением where) | |
|
|
|
|
|
|
|
для: Vova
(17.07.2006 в 14:57)
| | Хотя, решил проверить такой код
<?php
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
print $comma_separated; // lastname,email,phone
?>
| Тоже вывелся пустой экран
А не с этим кодом всё нормально .... | |
|
|
|
|
|
|
|
для: Vova
(17.07.2006 в 15:11)
| | Выяснил, что что-то не так с этой строчкой
foreach($_POST['pit'] as $key = $value)
|
Если её заремить, то ошибок нет, а если она присутствует, то белый экран | |
|
|
|
|
|
|
|
для: Vova
(17.07.2006 в 15:19)
| | И вот ещё, если вместо = поставить =>
foreach($_POST['pit'] as $key => $value)
|
то белый экран не выдаёт, но не ищет при выборе ни по какому значению. | |
|
|
|
|
|
|
|
для: Vova
(17.07.2006 в 15:33)
| | Всем спасибо, ошибка найдена и исправлена. Всё работает )). Ищёт при выделении нескольких значений. Действительно, всё оказалось в строчке
foreach($_POST['pit'] as $key = $value)
|
| |
|
|
|
|
|
|
|
для: Vova
(26.07.2006 в 14:04)
| | Единственное что, это то, что при выборе нескольких значений после поиска они не остаются выделенными в форме multiple. Можно ли как-то сделать, чтобы они остались бы выделенными, как и до нажатия на Поиск? И поэтому значение
echo "".$_POST['pit']."";
|
что я хочу вывести на экран выдаёт array, а не выделенные мною .... | |
|
|
|
|
|
|
|
для: Vova
(26.07.2006 в 14:38)
| | Да можно, вы как форму формируете? | |
|
|
|
|
|
|
|
для: cheops
(26.07.2006 в 16:02)
| | Так создается форма мульти
<select multiple size='8' class="input" type=text name=pit[]>
<option value='none' <?php if($_POST['pit']=='none') echo "selected"; ?>>любое</option>
<?
$sql = "SELECT * FROM products GROUP BY pit";
$r_sql = mysql_query($sql);
while ($res = mysql_fetch_array($r_sql))
{
?>
<option value='<?= $res['pit'];?>'<?php if ($_POST['pit']==$res['pit']) echo "selected"; ?>><?= $res['pit']; ?> </option>
<? } ?>
</select>
|
Обработка такая
<?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']).")";
}
?>
|
и ещё я хочу, чтоб вывелись на экран выделенные значения, но вот такой код выводит только одно первое, выделенное мною значение.
echo "Даты:</b> <span style='color: red;'><b>".$value."</b></span>";
|
Как же сделать чтоб выводил все выделенные в форме значения? | |
|
|
|
|
|
|
|
для: Vova
(26.07.2006 в 18:51)
| | Так как можно сделать, чтобы выделенные значения оставались и после поиска ? | |
|
|
|
|
|
|
|
для: Vova
(26.07.2006 в 18:51)
| | Да у вас в принциее всё должно запоминаться, только пробел поставьте, чтобы у вас слово selected не вливалось со значением атрибута value
<option value='<?= $res['pit'];?>' <?php if ($_POST['pit']==$res['pit']) echo "selected"; ?>><?= $res['pit']; ?> </option>
|
| |
|
|
|
|
|
|
|
для: cheops
(28.07.2006 в 22:16)
| | Поставил пробел, но ничего всё равно не запоминается. | |
|
|
|
|
|
|
|
для: Vova
(07.08.2006 в 14:04)
| | ВОт, немного переделанный код, но всё равно значения не запоминаются
<select multiple size='7' class="input" type=text name=pit[]>
<?
$sql = "SELECT * FROM products GROUP BY pit";
$r_sql = mysql_query($sql);
while ($res = mysql_fetch_array($r_sql))
{
?>
<option value='<?= $res['pit'];?>'<?php if ($_POST['pit']==$res['pit']) echo "selected"; ?>>
<?= $res['pit']; ?>
</option>
<? } ?>
</select>
|
| |
|
|
|