2012-05-14 5 views
3

私はYiiプロジェクトの1つに対してページ設定を行い、CListViewを使用して目的の結果を得ました。セキュリティと読みやすさのため、actionParams関数を$ _POSTのパラメータにのみマップするように設定しました。Yii CListViewからの "Post"引数

私の問題は、私がソート可能なフィールドやページリンクをクリックすると、実際にはGETのデータです。代わりにPOSTに変更するにはどうすればよいですか?

答えて

3

あなたのニーズに合っているかどうかはわかりませんが、JavaScriptを使用して手動でajaxの更新を起動するには、$.fn.yiiListView.update('list-id',{type: 'POST'});を使用できます。 2番目の引数では、データとその他のajaxオプション($.fn.yiiListView.update('list-id',{type: 'POST',data:{ex_var: 'TEST'}});など)を送信することもできます。

しかし、これを使用するには、あなたのページャーの上記のクリックイベントをバインドする必要があります。

もう1つ解決策は、jquery.yiilistview.jsを編集することです(フレームワーク/ zii/widgets/assets/listviewで見つけることができます)。更新機能がある行82に移動し、そのオプションを次のように編集します。

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

});

また、アセットフォルダを更新する必要があります。ただし、すべてのCListViewsの動作が変更されることに注意してください:)

よろしくお願いします。

+1

あなたは、全体的にページネーションの内容を更新しています。私が意味するのは、ページ番号とソーター列のページ番号をクリックすることです。 –

+0

私は知っていますが、ページ分割リンクとソーター列をクリックすると、$ .fn.yiiListView.update()関数を介してajaxの更新がトリガーされます。または、ページング用にカスタムソリューションを使用しましたか?関連するコードを投稿すると多くの助けになります。 –

+0

ねえ、ありがとう! 2番目の解決策は素晴らしいです!私は基本ファイルを更新したくなかったが、他には何もしていないので、私はそれをしなければならないだろう。 –

関連する問題