将未通过PHP验证的字段返回给jQuery

时间:2010-07-28 23:55:23

标签: php jquery

我正在使用jQuery和PHP进行表单验证。我想返回不验证的字段,以便我可以使用javascript突出显示它们

这是我尝试使用PHP(validate.php):

<?php
...
$a_invalidInput = array();

$from = $_POST['from'];
$to = $_POST['to'];
$email_to = $_POST['email_to'];

if( empty($from) ){
   $a_invalidInput[] = 'from';
}

if( empty($to) ){
   $a_invalidInput[] = 'to';
}

//validate the email_to address
if( empty($email_to) ){
   $a_invalidInput[] = 'email_to';
} else{

   //do more validation for email
}
...
?>

这是我的jquery代码:

...

var data = "from="+ from + "&to=" + to + "&email_to=" + email_to; 

$.ajax({
   url: "includes/validate.php",
   type: "POST",
   data: data,
   success: function(){

      //highlight fields that do not pass validation

   }
});

...

我不确定我是否在正确的路径上以及如何返回未通过验证的输入字段,因此我可以添加一个类来突出显示未通过验证的字段。

我可以使用javascript做到这一点,但我更喜欢使用php文件进行验证

由于 马可

2 个答案:

答案 0 :(得分:0)

使用jQuery进行表单验证 - 我个人觉得它更容易。也就是说,你应该总是仔细检查数据,总是在服务器端转义它。

http://yensdesign.com/2009/01/how-validate-forms-both-sides-using-php-jquery/

答案 1 :(得分:0)

一种方法是返回一个json编码的不通过的字段数组。

从PHP脚本中输出您的Invalid Input数组(json编码,以便您的javascript可以使用它)。然后在Javascript端,您要检查该输出是否有任何值。如果是,请使用它们。

<?php
    // at the end of your script
    header('Content-type: application/json');
    echo json_encode($a_invalidInput);
    exit();
?>

现在在你的JQuery中,你想要使用那个json输出......

$.ajax({
    url: "includes/validate.php",
    type: "POST",
    dataType: "json",
    data: data,
    success: function(data){
        if (data !== undefined
        &&  data.length > 0) {
            for (var i = 0; i < data.length; i++) {
                var field_name = data[i];
                var field = $('input[name=' + field_name + ']');

                // now you have the field, so you can modify it accordingly.
            }
        }
    }
})