我有以下按钮:
<?php $this->widget('bootstrap.widgets.TbButton', array(
'label'=>'myLabel',
'buttonType'=>'ajaxButton',
'url'=>'someUrl',
'type'=>'primary', // null, 'primary', 'info', 'success', 'warning', 'danger' or 'inverse'
'size'=>'small', // null, 'large', 'small' or 'mini'
'ajaxOptions'=>array(
'type' => 'POST',
'beforeSend' => '
function( request ) {
//alert(request);
}'
,
'success' => 'function( data ) {
//alert(data);
}'
,
'data' => array(
'actionName' => "INCREMENT"
)
),
)); ?>
所以,棘手的部分是,如何将此按钮连接到实际的后端代码?我认为这是通过发布到URL来完成的。在我的情况下,我有一个URL设置为:
'url'=>'someUrl'
这是否意味着我必须创建一个视图,控制器和模型,以便有一个URL发布到?没有经过这种努力,是不是有更简单的方法?
答案 0 :(得分:1)
您不一定需要新视图。但是您需要一个捕获此请求的操作。
在Yii中,每个动作都有一个引用它的唯一URL,并且有一些函数可以为我们生成这样的URL namely createUrl
。还有createUrl
的其他版本,此处的版本来自CController
。
所以你要将你的url属性修改为:
'url'=>$this->createUrl('controller-name/action-name')
然后在您的控制器中添加操作:
public function actionActionname(){
// do your server-side stuff
// maybe also return some message back to client-side view
if(success)
echo "Y";
else echo "N";
Yii::app()->end();
}