我有下面的功能,我希望使用ajax发送到控制器。我正在使用这样的代码'data'=> "js:$(this).serialize() + '&idcab2= ' + idcabok + ' ' ",
,但$(this).serialize()
没有发送到控制器,但变量idcab2已成功发送到控制器。任何人都可以帮助我,为什么序列化数据不发送给控制器?
这是我的完整代码:
function editCabang(idcab)
{
var idcabok=idcab;
echo CHtml::ajax(array(
'url'=>array('Tbcabang/update'),
'data'=> "js:$(this).serialize() + '&idcab2= ' + idcabok + ' ' ",
'type'=>'POST',
'dataType'=>'json',
'success'=>"function(data)
{
if (data.status == 'failure')
{
$('#dialogClassroom div.divForForm').html(data.div);
// Here is the trick: on submit-> once again this function!
$('#dialogClassroom div.divForForm form').submit(editCabang);
}
else
{
$('#dialogClassroom div.divForForm').html(data.div);
setTimeout(\"$('#dialogClassroom').dialog('close') \",3000);
}
} ",
))
答案 0 :(得分:0)
序列化表单而不是自我
var form = $('#my_form');
'data'=> "js:$(form).serialize() + '&idcab2= ' + idcabok + ' ' ",
另外,我不知道您的控制器期望什么,但我会考虑添加表单变量而不是附加字符串。
$(form).serialize() + {idcab2: idcab2}
如果您想使用上面的格式添加其他变量,可以将其发布到网址
'url'=>url + '&idcab2= ' + idcabok ,
'data'=> "js:$(form).serialize() + '&idcab2= ' + idcabok + ' ' ",