[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: После сортировки сбрасывается selected
dja
Есть выпадающий список, где есть список размеров. Так же рядом есть две ссылки, одна для сортировки позиций по возрастания другая по убыванию.
Проблема в том что например после выбора параметра из выпадающего списка,
количество позиций уменьшается, т.к. накладывается условие where, но после выбора сортировки это условие слетает.

Как исправить, чтобы после того как выбрали элемент из выпадающего списка, а затем после сортировки, выбранный элемент выводился?



//здесь формирую список размеров
$size=mysql_query("SELECT S.`ID_SIZE`
,concat(S.`size_l`,'x',S.`size_w`,' см') 'size'
FROM `SIZE` S
WHERE S.`ID_CATEGORY`="
.(int)$c.
" ORDER BY S.`size_l`"
,$db);



//здесь эти значения загоняю в выпадающий список. Который находится в форме для передачи выбранного значения

if(mysql_num_rows($size))
{
$select="<form name='choise_size' method='post' action='/item/category/item_1.php?c=".(int)$c.'&sort='.$sort."'>

<select name='choise'>
<option value='0'>Все размеры</option>"
;



while($row_size=mysql_fetch_assoc($size))
{

// условие чтобы после обновления показывался выбранный элемент
if ( isset($_POST['choise'])&& $_POST['choise']==$row_size['ID_SIZE'] ) {$selected='selected';} else {$selected='';}


$select.="<option ".$selected." value=".$row_size['ID_SIZE'].">".$row_size['size']."</option>";
}
$select.="<input type='submit' value='OK'></input>
</form>
</select>"
;

echo($select);


}
else
{echo('');}








Следующий код делает сортировку. Точнее переменной sort задаю значение
desc или asc, которые отправляю в select для order by

Вот здесь и не знаю как отправить значения $_POST['choise']


<a href='/item/category/item_1.php?c=<?php echo($c).'&'.sort.'=desc' ?>'>Убыв. </a>
<a
href='/item/category/item_1.php?c=<?php echo($c).'&'.sort.'=asc' ?>'>Возр. </a>


В этом коде идет выборка позиций. Здесь как раз нужны значения из выпадающего списка для фильтрации данных и значение для сортировки


// условие для where likz фильтрации
if ( isset($_POST['choise'])&& $_POST['choise']<>0 ) {$where=' and S.`ID_SIZE`='.$_POST['choise'];} else {$where='';}

$goods=mysql_query("SELECT G.`ID_GOODS`
,N.`name`

,G.`price`

FROM `GOODS` G
LEFT JOIN `NAME` N on (N.`ID_NAME`=G.`ID_NAME`)
LEFT JOIN `SIZE` S on (S.`ID_SIZE`=G.`ID_SIZE`)

WHERE G.ID_CATEGORY="
.(int)$c.$where.
" ORDER BY G.`price` ".$sort

,$db);


Быстрый ответ:

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