1

Yii 初心者の私は、CGRIDVIEW に簡単にきれいな方法で Ajax/JS 関数を含める方法を見つけようと何度も試みました。コードは基本的に次のとおりです。

'click'=> "function (){
    $.fn.yiiGridView.update('news-grid', {
    type:'POST',
    url:$(this).attr('href'),
    success:function(data) {
        $('#AjFlash').html(data).fadeIn().animate({
            opacity: 1.0
        }, 3000).fadeOut('slow');

        $.fn.yiiGridView.update('news-grid');
    }
})
return false;

}"

あなたの意見では、これを含めるための最もクリーンでパフォーマンスに優れた方法は何ですか? お時間をいただきありがとうございます!!!

4

1 に答える 1

0

わかりませんが、1回の操作でグリッドを2回更新する必要があるとは思いません。また、そのようなJavaScriptを含めるのも好きではありません。私が必要とするものに応じて、いくつかのアプローチがあります。この答えのために、最も簡単なアプローチを示します。

別のファイルにグローバルオブジェクトを作成します。

//app.js
var App = {
  updateSomething: function () {
    $.post(
      $(this).attr('href'),
      success:function(data) {
        $('#AjFlash').html(data).fadeIn().animate({
          opacity: 1.0
        }, 3000).fadeOut('slow');
        $.fn.yiiGridView.update('news-grid');
      }
    );
    return false;
  }
};

また、 CCLientScript :: registerScriptFileを呼び出すことにより、コントローラーからそのファイルを含めることができます。

Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl."js/app.js");

そしてあなたのグリッド上:

'click'=> "js:App.updateSomething",

はるかに優れたアプローチがありますが、これは、ある種の組織を持ちたいjs初心者にとってはより簡単です。

于 2013-02-05T15:37:03.113 に答える