1

我有以下按钮:

<?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?不经过努力就没有更简单的方法吗?

4

1 回答 1

1

您不一定需要新的视图。但是你需要一个动作来捕捉这个请求。

在 Yii 中,每个动作都有一个唯一的 url 来引用它,并且有一些函数可以为我们生成这样的 url,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();
}
于 2012-11-16T12:39:28.897 回答