douhui3330 2010-07-28 23:55
浏览 40
已采纳

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

I'm using jQuery with PHP for form validation. I want to return the fields that do not validate so i can highlight them using javascript

this is my attempt using 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
}
...
?>

This is my jquery code:

...

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

   }
});

...

I'm not sure if i'm on the right path or not AND how to return the input fields that do not pass validation so i can add a class to highlight the fields that do not pass validation.

I could do this using javascript but i prefer using a php file for validation

Thanks Marco

  • 写回答

2条回答 默认 最新

  • doushuo1080 2010-07-29 02:59
    关注

    One way to go would be to return a json encoded array of fields that do not pass.

    From your PHP script, output your Invalid Input array (json encoded so your javascript can use it). Then on the Javascript side, you want to check if that output has any values. If it does, use them.

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

    Now in your JQuery, you want to use that json output...

    $.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.
                }
            }
        }
    })
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭