Привязка функции jQuery .change() к выбору не работает (внутри шаблона Smarty)

У меня следующая проблема. На веб-сайте электронной коммерции (сделанном с помощью Prestashop, поэтому он использует Smarty) сортировка товаров не работает. Это поле SELECT, которое динамически изменяется, когда пользователь выбирает какую-либо опцию (перезагружает сайт). Посмотрите на следующий код:

Во-первых, Смарти:

{if isset($orderby) AND isset($orderway)}
<!-- Sort products -->
{if isset($smarty.get.id_category) && $smarty.get.id_category}
    {assign var='request' value=$link->getPaginationLink('category', $category, false, true)}
{elseif isset($smarty.get.id_manufacturer) && $smarty.get.id_manufacturer}
    {assign var='request' value=$link->getPaginationLink('manufacturer', $manufacturer, false, true)}
{elseif isset($smarty.get.id_supplier) && $smarty.get.id_supplier}
    {assign var='request' value=$link->getPaginationLink('supplier', $supplier, false, true)}
{else}
    {assign var='request' value=$link->getPaginationLink(false, false, false, true)}
{/if}

Затем jQuery:

<script type="text/javascript">
//<![CDATA[
{literal}
$(document).ready(function()
{
    $('#selectPrductSort').change(function()
    {
        var requestSortProducts = '{/literal}{$request}{literal}';
        var splitData = $(this).val().split(':');
        document.location.href = requestSortProducts + ((requestSortProducts.indexOf('?') < 0) ? '?' : '&') + 'orderby=' + splitData[0] + '&orderway=' + splitData[1];
    });
});
//]]>
{/literal}
</script>

И HTML:

<form id="productsSortForm" action="{$request|escape:'htmlall':'UTF-8'}">
    <p class="select">
        <label for="selectPrductSort">{l s='Sortuj wg'}&nbsp;</label>
        <select id="selectPrductSort">
            <option value="{$orderbydefault|escape:'htmlall':'UTF-8'}:{$orderwaydefault|escape:'htmlall':'UTF-8'}" {if $orderby eq $orderbydefault}selected="selected"{/if}>{l s='--'}</option>
            {if !$PS_CATALOG_MODE}
                <option value="price:asc" {if $orderby eq 'price' AND $orderway eq 'asc'}selected="selected"{/if}>{l s='ceny - od najniższej'}</option>
                <option value="price:desc" {if $orderby eq 'price' AND $orderway eq 'desc'}selected="selected"{/if}>{l s='ceny - od najwyższej'}</option>
            {/if}
            <option value="name:asc" {if $orderby eq 'name' AND $orderway eq 'asc'}selected="selected"{/if}>{l s='nazwy produktu - od A do Z'}</option>
            <option value="name:desc" {if $orderby eq 'name' AND $orderway eq 'desc'}selected="selected"{/if}>{l s='nazwy produktu - od Z do A'}</option>
            {if !$PS_CATALOG_MODE}
                <option value="quantity:desc" {if $orderby eq 'quantity' AND $orderway eq 'desc'}selected="selected"{/if}>{l s='dostępności'}</option>
            {/if}
        </select>
    </p>
</form>

По этой ссылке - http://skleppatrioty.pl/category.php?id_category=5 - вы можете увидеть рабочий пример. Это поле SELECT рядом с текстом «Sortuj wg» в верхней части основного правого столбца.

Я что-то упускаю? Спасибо за помощь.


person Irminsul    schedule 12.09.2012    source источник
comment
Можете ли вы немного рассказать об ошибках, которые вы получаете?   -  person Phillip Schmidt    schedule 12.09.2012
comment
Итак, Firebug выдает 2 ошибки: 1. NetworkError: 404 Not Found - skleppatrioty.pl/modules /maofree_blockcarousel/css/ 2. TypeError: $(.blockcarousel .jCarouselLite).jCarouselLite не является функцией Однако я не уверен, что это как-то связано с проблемой, потому что на локальном хосте нет Firebug ошибки, и сортировка по-прежнему не работает.   -  person Irminsul    schedule 12.09.2012


Ответы (1)


Я проверил живой сайт, и приведенный выше код выглядит нормально.

Я рекомендую сначала избавиться от ошибки карусели.

person Owlvark    schedule 13.09.2012