使用jquery提交表单时确定返回的内容

时间:2012-08-17 13:30:10

标签: php jquery

使用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 个答案:

答案 0 :(得分: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.

答案 1 :(得分:0)

如果出现错误,你可以让php返回0,所以你在

中做了类似的事情
 success: function(data) {
       if(data==0){
       //do error procedure
       }else{
        //do success procedure
       }
    }

希望这有帮助

答案 2 :(得分: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;
});

答案 3 :(得分:0)

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

data: $(this).serialize(),

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