使用Codeigniter表单验证和Jquery序列化

时间:2013-10-21 11:03:45

标签: javascript php jquery codeigniter validation

我想使用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 code:

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

提前致谢

1 个答案:

答案 0 :(得分:1)

将您的数据发布为:

data: form.serialize(),

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