我正在尝试通过ajax进行表单验证。我清理表单,然后将其传递到将清理并验证表单的php文件中。如果有任何错误,我希望它可以将字段边框更改为其他颜色,并在表格下方显示错误消息(我可以这样做)。
仅来自此php文件,它将通过ajax调用,但需要返回一个数组,如:
id_with_check: ID { check_var(); } ;
lval: id_with_check
| id_with_check LBRACK NUM RBRACK
| id_with_check LBRACK id_with_check RBRACK
;
产生一个看起来像这样的数组:
$errors = array();
$errors['text'] = array(array('name'=>'address','messages'=>'Enter an address'),array('name'=>'phone','messages'=>'Enter a phone'));
$errors['select'] = array(array('name'=>'company','messages'=>'Enter a company name'));
如果有的话,现在在该文件的末尾
Array
(
[text] => Array
(
[0] => Array
(
[name] => address
[messages] => Enter an address
)
[1] => Array
(
[name] => phone
[messages] => Enter a phone
)
)
[select] => Array
(
[0] => Array
(
[name] => company
[messages] => Enter a company name
)
)
)
然后我将把该数组编码为json,这意味着我可以将其传递给jquery脚本。
$data = $errors;
echo json_encode($data);
我不确定的部分是如何在成功的情况下从阵列中取回所有数据。 我想做的等同于:
serialize = $('#form').serialize();
$.ajax({
type : 'POST',
dataType : 'json',
url : '//'+base_url+'/ajax/form-validation.php',
data : serialize,
success : function(data) {
}
});
因此对于'text'变量,它们将通过text()函数传递名称和消息变量,而'select'变量将通过select()函数进行传递。
但是如何通过json和jquery来实现呢?