0

使用 jquery 时是否可以识别页面返回的内容?我在这里使用 jquery 提交一个表单,如下所示:

$("#sform").submit(function() {
    $.ajax({
        type: "POST",
        data: $(this).serialize(),
        cache: false,
        url: "user_verify.php",
        success: function(data) {
            $("#form_msg").html(data);
        }
    });
    return false;
});

​​​

user_verify.php 页面执行其通常的验证工作,并返回错误消息或成功将用户添加到数据库。如果它的错误是一堆错误消息或成功通常是“您已成功注册”。如果它的错误消息返回或成功消息,我可以以某种方式识别使用 jquery。这样,如果出现错误,我可以在表单中使用该数据,或者如果成功,我可以关闭表单并显示成功消息。

4

4 回答 4

1

是的,就是这样:

success: function(data) {
    $("#form_msg").html(data);
}

您可以data以任何您想要的方式进行操作。您可以从服务器端返回 JSON(使用dataType)编码字符串并在success函数中处理数据

success: function(data) {
    if(data->success == 'ok'){
       // hide the form, show another hidden div.
    }
}

所以user_verify.php应该打印例如:

// .... queries 
$dataReturn = array();
$dataReturn['success'] = 'ok';
$dataReturn['additional'] = 'test';
echo json_encode($dataReturn);
die; // to prevent any other prints.
于 2012-08-17T13:36:49.923 回答
0

如果错误,你可以让你的 php 返回 0 所以你在里面做这样的事情

 success: function(data) {
       if(data==0){
       //do error procedure
       }else{
        //do success procedure
       }
    }

希望这可以帮助

于 2012-08-17T13:37:42.683 回答
0

你可以这样做:

$.ajax({
type:"POST", //php method
url:'process.php',//where to send data...
cache:'false',//IE FIX
data: data, //what will data contain 
//check is data sent successfuly to process.php
//success:function(response){
//alert(response)
//} 
success: function(){ //on success do something...
$('.success').delay(2000).fadeIn(1000);  
//alert('THX for your mail!');
} //end sucess 
}).error(function(){ //if sucess FAILS!! put .error After $.ajax. EXAMPLE :$.ajax({}).error(function(){}; 
alert('An error occured!!');
$('.thx').hide();
});
 //return false prevent Redirection
  return false;
});
于 2012-08-17T13:50:16.797 回答
0

您可以在“成功”回调函数中检查“数据”参数。我注意到您的代码中存在问题。看看这一行:

data: $(this).serialize(),

在 $.ajax jquery 方法中,“this”绑定到全局窗口对象而不是 $('#sform')

于 2012-08-17T14:07:26.313 回答