2012-08-17 31 views
0

使用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。这样,如果它的错误我可以在表单中使用该数据,或者如果它的成功,我可以关闭表单并显示成功消息。

+0

我注意到,有一个问题,你的码。看看这一行: data:$(this).serialize(), 在$ .ajax jquery方法中,“this”绑定到全局窗口对象,而不是$('#sform') – sudip 2012-08-17 14:08:00

回答

1

是的,那就是:

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

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

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. 
+0

'ok'来自user_verify.php页面的权利? – Norman 2012-08-17 13:43:45

+0

是的,你作为JSON返回,让我修改我的答案 – 2012-08-17 13:44:26

0

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

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

希望这有助于

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; 
}); 
0

可以checke在“成功”回调函数“数据”参数。 我注意到你的代码存在问题。看这句话:

data: $(this).serialize(), 

在$阿贾克斯jQuery的方法“这种”被绑定到全局窗口对象,而不是$(“#sform”)