Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将Codeigniter表单验证与Jquery序列化一起使用_Javascript_Php_Jquery_Codeigniter_Validation - Fatal编程技术网

Javascript 将Codeigniter表单验证与Jquery序列化一起使用

Javascript 将Codeigniter表单验证与Jquery序列化一起使用,javascript,php,jquery,codeigniter,validation,Javascript,Php,Jquery,Codeigniter,Validation,我想使用CI的表单验证方法来验证我的输入数据。作为通过AJAX提交的表单,我使用serializeArray()将数据发布到我的控制器,这样我就不必发布一个数据或编写一些每个函数。问题是表单验证在$\u POST中查找数据。使用serialize()也没有帮助。除了扩展表单验证库,还有什么解决方案吗 这是我的代码: (控制员) js代码: $.ajax({ type: "POST", cache: false, url: url, data: {'form_dat

我想使用CI的表单验证方法来验证我的输入数据。作为通过AJAX提交的表单,我使用
serializeArray()
将数据发布到我的控制器,这样我就不必发布一个数据或编写一些
每个函数。问题是表单验证在$\u POST中查找数据。使用
serialize()
也没有帮助。除了扩展表单验证库,还有什么解决方案吗

这是我的代码: (控制员)

js代码:

$.ajax({
    type: "POST",
    cache: false,
    url: url,
    data: {'form_data': form_data},
    dataType: "html",
    success: function(res, textStatus, xhr) 
    {
        //  do something
    },
    error: function(xhr, textStatus, thrownError)
    {
        //do something else
    },
    complete: function()
    {
        // do some final thing
    },
    async: true
});
提前感谢

将您的数据发布为:

data: form.serialize(),

它将正常工作(表单是对页面表单的普通jquery引用,而不仅仅是“表单”一词)

谢谢@jmadsen,但正如我所说的,我测试了serialize,但它仍然会给我错误。我认为这是因为serialize()使表单成为一个查询字符串,但没有任何东西是$\u POST可以理解的。例如,如果我有2个表单元素,它将变为name1=value1&name2=value2,并将放入$\u POST['form\u data']。因此,当codeigniter搜索$_POST[“name1”]时,结果将是错误的。为什么它会出现在表单数据中?它应该像在控制器中一样正常地进入POST var,执行var_转储($\u POST)并查看发生了什么
form_data=$(“myform”).serialize()
。正如jquery网站
serialize
中所述,“将一组表单元素编码为字符串以供提交。”。这意味着,在调用该函数并将其分配给Ajax数据属性中的某个变量后,它只包含一个
查询字符串
。您可以在这里看到示例[。使用
var\u dump
还显示了类似字符串(n)name1=value1&name2=value2&…不要将其分配给变量,只需将其作为您的数据传递:ajax调用的一部分;这就是导致问题的原因。您没有传递serialize(),你传递的是一个字符串,你不想这样读我已经给你的答案,请在网上看一下
data: form.serialize(),