Javascript Ajax不返回php foreach循环

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:

我一辈子都搞不清楚这里发生了什么:

我有以下jquery/ajax代码

$(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