我是yii和ajax的新手。 在这里,我试图基于相同表单中选中的单选按钮选项来更新表单值。 我可以创建一个ajax调用,并在另一个div中呈现值。 但我仍然不知道如何传递该值以供查看。
如下所示,这是单选按钮,根据选定的单选选项发送ajax呼叫。
Model Type
<?php echo CHtml::radioButtonList('parent','child',array('0'=>'Parent','1'=>'Child'),
array('labelOptions' => array('style'=>'display:inline'), 'separator' => " ",'id'=>'model_type',
'async' => false,
'onclick' => CHtml::ajax(array(
'type' => 'GET',
'url' => array('addModelType/id/'.$dataProvider),
'data' => array('test' => 'js:this.value'),
'update' => '#test'
))));
?>
下面是控制器方法,可以通过Ajax获取选定的单选按钮值。
public function actionAddModelType($id)
{
$value = $_GET['test'];
$parentId = 0;
if ($value == 1) {
$parentId = $parentId + 1;
echo $parentId;
}
else {
$parentId = 0;
echo $parentId;
}
}
在上面的测试div中,如果我仅在此控制器中指定echo $ parentId,则将打印value。 但我需要在测试div内的文本框中显示该内容。 此尝试将不起作用。 那么我该如何实现呢?
我尝试添加以下代码以在上述actionAddModelType($id)方法中传递$ parentId。
$this->renderPartial('create_model',array(
'parentId'=>$parentId
));
然后下面的错误将被触发。
Fatal error: Call to a member function isAttributeRequired() on null in /var/www/html/framework/web/helpers/CHtml.php on line 1414
因此,我尝试在控制器中发送另一个ajax调用,如下所示。
CHtml::ajax(array(
'type' => 'GET',
'url' => array('createModel/id/'.$dataProvider),
'data' => array('test' => $parentId),
'update' => '#test'
));
这样也行不通。 有人知道如何解决这个问题吗?
内部控制器echo CHtml::textField('name', $parentId); 工作了。 现在下一个问题是使用jquery或某种技术从视图获取文本框的值...