1

ショップアプリケーションを書いていますが、質問があります。

ご存知のように、Yiiのajaxは次のようになります

<?php
    echo CHtml::ajaxLink(
        '',
        array("cart/add/id/$item->id"),
        array(
            'update'=>'#cart',
        ),
        array('class' => "button_basket")
    );
?>

このコードは、divを。で更新しますid = cart。ページ上の他の要素を更新するにはどうすればよいですか?たとえば、カートページで、ajaxを介して1つのアイテムを削除していますが、合計価格を更新する必要があります。これを行うための最良の方法は何ですか。

4

1 に答える 1

1

このためには、JavaScript、できればサーバーからの応答を読み取り、それに応じてUIを変更する関数を作成する必要があります。

ドキュメントajaxLink();見ると、3番目のパラメータがajaxOptionsであり、 jQueryのajaxメソッドのオプションを使用していることがわかります。したがって、成功イベントのコールバック関数を作成できます。そして、この関数では、UIに変更を加えることができます。

サンプルコード:

<?php
 echo CHtml::ajaxLink(
    '',
    array("cart/add/id/$item->id"),
    array(
        // 'update'=>'#cart', this will be ignored when you have success callback
        'success'=>'js:successFunctionName',
    ),
    array('class' => "button_basket")
 );
?>

現在のビューのどこかで、registerScript関数をビューに出力するために使用できます。

Yii::app->clientScript->registerScript('scriptname','
    function successFunctionName(data, textStatus, jqXHR){
        // write awesome javascript to change ui
    }
');
于 2012-07-13T14:00:32.413 に答える