2012-05-14 42 views
3

因此,我爲我的一個Yii項目設置了分頁設置,並使用CListView實現了預期結果。爲了安全性和可讀性,我將actionParams函數配置爲僅映射到$ _POST參數。來自Yii的「Post」參數CListView

現在我的問題是,當我點擊我的任何排序字段或我的頁面鏈接時,它實際上是GET的數據。如何將其更改爲POST而不是?

回答

3

如果它滿足您的需求,我不會打結,但您可以通過JavaScript手動觸發ajax更新:$.fn.yiiListView.update('list-id',{type: 'POST'});。在第二個參數中,您還可以發送數據和其他ajax選項,如:$.fn.yiiListView.update('list-id',{type: 'POST',data:{ex_var: 'TEST'}});

但是要使用這個,你將不得不綁定上面的點擊你的尋呼機的事件。

另一種解決方案是編輯jquery.yiilistview.js(你可以在framework/zii/widgets/assets/listview中找到它)。轉到更新功能所在的第82行,並編輯其選項,如:

options = $.extend({ 
type: 'GET', //<- change this to POST 
url: $.fn.yiiListView.getUrl(id), 
    ... 

});

您還必須刷新資產文件夾。但請記住它會改變你所有的CListView的行爲:)

問候。

+1

你在說整體更新分頁的內容。我的意思是點擊分頁和分類列的頁碼。 –

+0

我知道,但點擊分頁鏈接和排序列會通過函數$ .fn.yiiListView.update()觸發ajax更新。或者您是否使用了一些自定義的解決方案?發佈一些相關的代碼會有很大的幫助。 –

+0

嘿,謝謝!第二種解決方案出色地工作!我不想更新基本文件,但由於我沒有其他的去,我將不得不與它做。 –