Yii - about jquery ajax


Yii - about jquery ajax

我正在编写一个商店应用程序,我有一个问题。

正如您所知,Yii中的ajax看起来像

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

此代码使用id = cart更新div。如何更新页面上的其他元素?例如,在购物车页面上,我通过ajax删除了一个项目,我需要更新总价,最好的方法是什么?

为此,您需要编写一些javascript,最好是一个从服务器读取响应的函数,并相应地对ui进行更改。

如果您浏览ajaxLink();的文档,您会看到第三个参数是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
    }
');