我使用YII,並且我有一個複選框過濾器,可按品牌過濾產品。產品清單通過未啓用Javascript的複選框過濾
這是我的過濾器HTML:
<dl class="brand-filter">
<dd class="cat-text">
<input value="1" id="chb_1" class="brand-filter-chb" type="checkbox" name="brands[]">
<label for="chb_1" class="brand-filter-text" style=" display: inline-block;">Brand Name 1</label>
</dd>
<dd class="cat-text">
<input value="2" id="chb_2" class="brand-filter-chb" type="checkbox" name="brands[]">
<label for="chb_2" class="brand-filter-text" style=" display: inline-block;">BRAND Name 2 </label>
</dd>
etc.
</dl>
當用戶在做一個複選框,然後點擊jQuery的做YII fn.yiiListView.update。這就像ajax調用,更新我正在過濾的數據。 Ajax調用控制器/動作(在我的情況下,控制器是產品,動作是列表),參數$品牌被傳遞給控制器/動作。
這是我的javascript過濾器(jQuery的):
$('.brand-filter-chb').live('click', function(){
brands = $('#filter-form').serialize(); //brand names are serialized
$.fn.yiiListView.update( //this updates product list by brand names
'product-list', //id of product list table
{data: brands} //serialized data send to controller/action by ajax call
);
});
這允許過濾由品牌產品清單。使用檢查品牌名稱複選框和列表已過濾。用戶也可以檢查多個品牌名稱,一切正常。 但是,它不工作沒有Javascript。
我想知道什麼是允許在不支持JavaScript的相同或非常相似的用戶體驗的最佳解決方案。 例如,如果使用JavaScript可以只在一個品牌下過濾產品列表(如果未啓用JavaScript),那也是可以接受的。
這不是我的情況。我希望用戶允許在沒有Javascript的情況下使用我的頁面。我需要一個運行時沒有Javascript的頁面來獲得更好的搜索引擎優化(我需要谷歌找到按品牌過濾產品的可能性,至少我認爲這是必要的)。當複選框選擇並記住所檢查的內容(無javascript)時,如何刷新頁面? – renathy
這不是SEO的工作原理。你應該研究SEO。幾乎所有的網站都使用JS並擁有良好的SEO。您將需要他們單擊提交按鈕將表單提交給PHP,或者使用javascript作爲onClick事件來提交表單。 – Bot
Oups。我的意思是這個複選框過濾器更新是由Ajax完成的,Ajax通常不是SEO友好的...所以我可能會使用javascript onClick作爲複選框。 – renathy