Yii-Javascript求值作为AjaxButton中的参数

Yii-Javascript求值作为AjaxButton中的参数,javascript,php,yii,Javascript,Php,Yii,我是Yii的新手,我不确定我做事情的方式是否正确。我试过在Yii论坛或谷歌上搜索,但找不到答案 形势 我必须动态地向页面添加一个代码,以调用控制器中需要单个参数的特定操作 public function actionAddRow($index) { $model = new Users(); $this->renderPartial('_usersBatchRow', array( 'model' => $mod

我是Yii的新手,我不确定我做事情的方式是否正确。我试过在Yii论坛或谷歌上搜索,但找不到答案

形势

我必须动态地向页面添加一个代码,以调用控制器中需要单个参数的特定操作

public function actionAddRow($index)
    {
        $model = new Users();
        $this->renderPartial('_usersBatchRow', array(
                'model' => $model,
                'i'=>$index,
                'countries' => Countries::model()->findAll(),
        ),false,false);
    }
此操作运行良好,partialTemplate执行我需要的操作

要称之为此,我在主页中使用:

echo CHtml::ajaxButton ("Add Something",
        CController::createUrl('users/AddRow'),
                array(
                      'method'=>'get',
                      'data'=>array('index'=>'2'),  
                      'success'=>'function(data){                                             
                      $("#tableBody").append(data);
                                        }'));
操作的结果完美地添加到表中。 如您所见,我在参数设置中硬编码了值“2”

我需要动态地检索这个值,并使用javascript读取一个隐藏字段

我尝试过这种方法,但不起作用:

'data'=>array('index'=>"js:$('#hiddenValue').val();"),  
hiddenValue在“success”部分更新(在上面的代码中还没有),因此下一个将把新值传递给操作

这是一个精确的方法还是我做事情的方式不对


谢谢。

已解决

感谢斯图的评论,我改变了解决方案的概念:

首先,我在不使用任何组件的情况下创建了一个静态链接:

<a href="#" id="addButton" onClick="addRow()">Aggiunti con Link</a>

然后,我创建了一个特定的函数,它不是AjaxLink/AjaxButton秘密实现的功能:

<script>
            function addRow(){
                var indexValue = $('#currentRowId').val();
                jQuery.ajax({
                        'method':'get',
                        'data':{'index':indexValue},
                        'success':function(data){
                                $('#tableBody').append(data);
                           $('#currentRowId').val(parseInt($('#currentRowId').val(),10)+1);
                         },
                         'url':'<?php echo CController::createUrl('users/AddRow'); ?>',
                         'cache':false});
            }

        </script>

函数addRow(){
var indexValue=$('#currentRowId').val();
jQuery.ajax({
'method':'get',
'data':{'index':indexValue},
“成功”:函数(数据){
$('#tableBody')。追加(数据);
$('currentRowId').val(parseInt($('currentRowId').val(),10)+1);
},
“url”:“,
“缓存”:false});
}

PHP代码在服务器端运行,因此在构建按钮时无法访问任何javascript。渲染按钮后,您可能需要一些javascript代码来操作按钮的html是的。该代码仅创建一次。你的回答把我引向正确的方向。CHtml命令在页面底部创建一个隐藏的“onClick”事件。我需要创建自己的函数并手动调用$.ajax。