如何使用序列化和yii中的其他变量向控制器发送数据?

时间:2014-02-15 08:39:27

标签: jquery yii

我有下面的功能,我希望使用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);
                }

            } ",
            ))

1 个答案:

答案 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 + ' '  ",