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