Перейти к содержанию
Форум поддержки пользователей VamShop

[Готово] Выпадающий список для сортировки товара


pitch Maxim

Рекомендуемые сообщения

Подскажите пожалуйста как сделать выпадающий список как на рисунке, с ним было удобнее, потому что он занимает меньше места на экране

post-1351-1304838282,8371_thumb.gif

Ссылка на сообщение
Поделиться на другие сайты

Откройте шаблоны списка товаров /templates/шаблон/product_listing и замените:


{#text_products_per_page#} <a href="{$LINK_PAGE}10">10</a>, <a href="{$LINK_PAGE}20">20</a>, <a href="{$LINK_PAGE}50">50</a>, <a href="{$LINK_PAGE}100">100</a>
[/code] на:
[code]
<form action="index.php" method="get">
<input type="hidden" name="cat" value="{$smarty.get.cat}" />
{#text_products_per_page#}
<select name="on_page" onchange="this.form.submit();" size="1">
<option value="" selected="selected">Выберите</option>
<option value="1">1</option>
<option value="10">10</option>
<option value="30">10</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
</form>

Примерно так.

Как раз будет drop-down список

Ссылка на сообщение
Поделиться на другие сайты

Все отлично работает, вот только места занимает как и занимал, и я в итоге понял что лучше это сделать для  ::)

Сортировка: имя (по возрастанию) | имя (по убыванию) | цена (по возрастанию) | цена (по убыванию)

Ссылка на сообщение
Поделиться на другие сайты

Попробуйте примерно такой код:


<form action="index.php" method="get">
<input type="hidden" name="cat" value="{$smarty.get.cat}" />
{#text_products_per_page#}
<select name="sort" onchange="this.form.submit();" size="1">
<option value="" selected="selected">Выберите</option>
<option value="name">название</option>
<option value="price">цена</option>
</select>
</form>
[/code]

Ссылка на сообщение
Поделиться на другие сайты

Попробуйте примерно такой код:


<form action="index.php" method="get">
<input type="hidden" name="cat" value="{$smarty.get.cat}" />
{#text_products_per_page#}
<select name="sort" onchange="this.form.submit();" size="1">
<option value="" selected="selected">Выберите</option>
<option value="name">название</option>
<option value="price">цена</option>
</select>
</form>
[/code]

А почему нет по убыванию и по возрастанию?

Ссылка на сообщение
Поделиться на другие сайты

Так я ж вообще даю наводки, как делать, а не готовые на 100% решения.

Пробуй в список значений добавить что-то вроде:


<option value="name&direction=desc">название по убыванию</option>
<option value="price&direction=desc">цена по убыванию</option>
[/code]

наверное как-то так.

Ссылка на сообщение
Поделиться на другие сайты

Так я ж вообще даю наводки, как делать, а не готовые на 100% решения.

Пробуй в список значений добавить что-то вроде:


<option value="name&direction=desc">название по убыванию</option>
<option value="price&direction=desc">цена по убыванию</option>
[/code]

наверное как-то так.

не работает, в строке вместо &sort=name&direction=asc  выводиться &sort=name%26direction%3Dasc

т.е. наверное подменяются символы

и еще не отображается выбранный пункт т.е. после перезагрузки страницы всегда выбирается <option value="" selected="selected">Выберите</option>

Ссылка на сообщение
Поделиться на другие сайты

Тогда не знаю как сделать.

Конечно выбранный пункт не будет отображаться, это ж самое простое решение, без php кода даже.

Что б выделялся выбранный, нужно добавлять php код в /includes/modules/default.php

Рисовать форму через php код.

Ссылка на сообщение
Поделиться на другие сайты
<form action="index.php" method="get">
<input type="hidden" name="cat" value="{$smarty.get.cat}" />
<input type="hidden" name="sort" value="" />
<input type="hidden" name="direction" value="" />
<select onchange="var reg = /^([^&]+)&direction=(.*)$/.exec(this.value); this.form.sort.value = reg[1]; this.form.direction.value = reg[2]; this.form.submit(); " size="1">
<option value="" selected="selected">Сортировать</option>
<option value="name&direction=asc">Имя &#9650;</option>
<option value="name&direction=desc">Имя &#9660;</option>
<option value="price&direction=asc">Цена &#9650;</option>
<option value="price&direction=desc">Цена &#9660;</option>
</select>
</form>[/code]

Ссылка на сообщение
Поделиться на другие сайты

Не очень конечно красиво выглядит, но если работает, то наверняка можно использовать.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...