Javascript Ajax不返回php foreach循环
我一辈子都搞不清楚这里发生了什么: 我有以下jquery/ajax代码Javascript Ajax不返回php foreach循环,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我一辈子都搞不清楚这里发生了什么: 我有以下jquery/ajax代码 $(document).on('click', '.get_friend', function() { var messenger = $(this).text(); var user = '<? echo $username; ?>'; $.ajax({ url: '/includes/messenger.php', data: {messenger:
$(document).on('click', '.get_friend', function() {
var messenger = $(this).text();
var user = '<? echo $username; ?>';
$.ajax({
url: '/includes/messenger.php',
data: {messenger: messenger, user: user},
type: 'GET',
success:function(data){
$('#messages').html(data);
alert(data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
});
如果我直接使用?user=name&messenger=name2访问页面,$mesg会完美返回。问题相当具体,ajax根本没有得到返回的foreach结果 @charlietfl我在上面的ajax代码中添加了错误处理,但是由于它实际上返回了数据,所以不确定会出现什么错误。它返回除$mesg之外的所有内容。如果使用。=,则必须在之前定义变量,如
$mesg=“”$mesg.=“文本”
@Eugen如果不初始化变量,默认情况下它将自动使用空字符串。如果您启用了警告,它将打印一条消息,但仍然有效。如果您得到$count1=0
,则查询不会返回任何行。请尝试$(this).text().trim()
,名称周围可能会有额外的空格。
require($_SERVER['DOCUMENT_ROOT'] . '/includes/config.php');
$user = $_GET['user'];
$messenger = $_GET['messenger'];
if (isset($_GET['messenger'])) {
$count1="0";
$stmt1 = $db->prepare("SELECT message, sender, receiver, id, time FROM messenger WHERE (receiver = :receiver AND sender= :sender)
OR (receiver = :sender AND sender=:receiver) ORDER BY time DESC");
$stmt1->bindParam(':receiver', $user);
$stmt1->bindParam(':sender', $messenger);
$stmt1->execute();
$friend_msg = $stmt1->fetchAll();
foreach ($friend_msg AS $friend_msg1) {
echo '1';
$test = (++$count1 % 2) ? "itemOut" : "itemIn";
$mesg .= '
<div class="'.$test.'">
<a href="#" class="image"><img src="img/users/olga.jpg" class="img-polaroid"/></a>
<div class="text">
<div class="info clearfix">
<span class="name">'.$friend_msg1['sender'].'</span>
<span class="date">'.$friend_msg1['time'].'</span>
</div>
'.$friend_msg1['message'].'
</div>
</div>
';
}
}
echo $count1;
echo $mesg;
echo $friend_msg;
echo $user;
echo $messenger;
$count1 returns 0;
$mesg returns nothing
$friend_msg returns 'array'
$user returns the variable user as sent from ajax
$messenger returns the variable messenger as sent from ajax