2012-09-12 77 views
0

我遇到了以下問題。 在電子商務網站(使用Prestashop製作,因此它使用Smarty),產品排序不起作用。這是一個SELECT字段,當用戶選擇某個選項(站點重新加載)時,該字段會動態更改。請看下面的代碼:jQuery .change()函數綁定選擇不起作用(在Smarty模板中)

首先,Smarty的:

{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」旁邊。

我錯過了什麼嗎?感謝您的幫助。

+0

你能告訴我一些你得到的錯誤嗎? –

+0

那麼,Firebug會給出2個錯誤:「1. NetworkError:404 Not Found - http://skleppatrioty.pl/modules/maofree_blockcarousel/css/blockcarousel_css.php」2. TypeError:$(「。blockcarousel .jCarouselLite」)。jCarouselLite不是函數「但是,我不確定這是否與問題有關,因爲在本地主機上沒有Firebug錯誤,排序仍然不起作用。 – Irminsul

回答

0

我檢查了現場,上面的代碼看起來不錯。

我建議首先擺脫旋轉木馬的錯誤。

+0

是的,這正是傳送帶錯誤。 – Irminsul

相關問題