$ .ajax成功功能对我不起作用。

时间:2012-09-17 06:19:32

标签: php jquery

朋友我有问题。我有一个会员区功能,它将使用jquery显示收件箱信息的数量。

这就是我所做的。

function listner_requests(){
  $.ajax({
  type: "POST",
  url: "http://src.abc.com/listner.php",
  data: "action=listner_requests",
  success: function(responseText, statusText, xhr) { alert(responseText);                               
  },
 error: function(data, statusCode) {
    alert("ERROR: "+data)
    }
  });
    } 

listner.php

if($_POST['action']=="listner_requests"){
$sql="SELECT messages FROM friend_requests WHERE message_to='".$_SESSION['MEMBER_ID']."'";
$data=mysql_query($sql,$profile);
$count=mysql_num_rows($data);
echo $count;
exit();
}

我在不使用ajax的情况下测试它是否正常工作。它完全有效。

但如果我使用ajax方法,它将不会提示正确的响应。 它会产生错误。我做错了什么?请帮我。感谢

2 个答案:

答案 0 :(得分:1)

不是解决方案 - 而是帮助调试的评论(由于代码不会出现,因此无法发表评论)

您的代码:

  success: function(responseText, statusText, xhr) {
      alert(responseText);                                
  }, 
  error: function(data, statusCode) { 
      alert("ERROR: "+data) 
  } 

有点误导,因为你有混乱的参数。你会发现调试更清楚:

  success: function(data) {
      alert(data);                                
  }, 
  error: function(xhr, status, textError) { 
    alert('Error ' + xhr.responseText + ' - ' + status + ' - ' + textError); 
  } 

如果xhr.responseText为空(正如您在评论中所述),那么textError可能会显示答案。如果做不到,状态会......

答案 1 :(得分:0)

假设您想要计数作为响应..我更希望返回数据为json ... 检查一下......看看它是否有效......

function listner_requests(){
$.ajax({
type: "POST",
dataType:'json',
url: "http://src.abc.com/listner.php",
data: "action=listner_requests",
success: function(data) { alert(data.totalcount);                               
},
error: function(data, statusCode) {
alert("ERROR: "+data)
}
});
} 

listener.php

if($_POST['action']=="listner_requests"){
$sql="SELECT messages FROM friend_requests WHERE         message_to='".$_SESSION['MEMBER_ID']."'";
$data=mysql_query($sql,$profile);
$count=mysql_num_rows($data);
echo json_encode(array('totalcount'=>$count));
exit();

}