我正在编写一个商店应用程序,我有一个问题。
正如您所知,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
}
');