【问题标题】:Using Codeigniter Form Validation with Jquery serialize使用带有 Jquery 序列化的 Codeigniter 表单验证
【发布时间】:2013-10-21 11:03:44
【问题描述】:

我想使用 CI 的表单验证方法来验证我的输入数据。作为通过 AJAX 提交的表单,我使用 serializeArray() 将数据发布到我的控制器,因此我不必通过一个数据发布或编写一些 each() 函数。问题是表单验证在 $_POST 中查找数据。使用serialize() 也无济于事。除了扩展表单验证库,还有什么解决方案吗?

这里是我的代码: (控制器)

$form_data = $this->input->post('form_data');

$this->load->library('form_validation');
$this->form_validation->set_rules('p_company_name', 'نام شرکت', 'required');
if ($this->form_validation->run() == FALSE)
{
  echo "fail";die(); // if i use serialize() or serializeArray()
}
else
{
  echo "success";die(); // if i use label:value for each form input
}

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
});

提前致谢

【问题讨论】:

    标签: javascript php jquery codeigniter validation


    【解决方案1】:

    将您的数据发布为:

    data: form.serialize(),
    

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

    【讨论】:

    • 感谢@jmadsen,但正如我所说,我测试了序列化,但它仍然给我错误。我认为这是因为 serialze() 使表单成为查询字符串,但 $_POST 无法理解。例如,如果我有 2 个表单元素,它将变为 name1=value1&name2=value2 并将放入 $_POST['form_data']。所以当codeigniter搜索$_POST["name1"]的时候,结果会是假的。
    • 为什么会出现在 form_data 中?它应该像往常一样在控制器中进入 POST vars,执行 var_dump($_POST) 并查看发生了什么
    • form_data = $("myform").serialize()。正如 jquery 网站serialize 中所述,“将一组表单元素编码为提交的字符串。”。这意味着在您调用此函数并将其分配给Ajax 的数据属性中的某个变量后,它只包含一个query string。您可以在此处查看示例 [api.jquery.com/serialize/]。使用var_dump 还会显示类似 string(n) name1=value1&name2=value2&...
    • 不要将其分配给变量,只需将其作为数据传递:ajax 调用的一部分;这就是导致您的问题的原因。你没有传递 serialize(),你传递的是一个字符串,你不想要那个
    • 请阅读我已经给你的答案,并在网上浏览一下,请
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    相关资源
    最近更新 更多