我想使用 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
});
提前致谢
将数据发布为:
data: form.serialize(),
它将正常工作(表单是对页面表单的普通jQuery引用,而不仅仅是单词"form")