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 に答える