在ajax中返回foreach响应

时间:2013-03-11 17:15:15

标签: php mysql ajax

$res = mysql_query("SELECT * FROM `basket` WHERE `account_id` = '$_SESSION[ID]'");
while($row = mysql_fetch_assoc($res)) {
        $search = $row['number'];
        echo $search;
}

我正在尝试做的是使用对此PHP文件的Ajax调用,然后使用“回显”数据我要解析并放置在div中,这里是Ajax调用

$(document).ready(function() {
    var data = "func=basket";             
    $.ajax({
        url: "functions/ajax.php",
        data: data,
        type: "GET",
        success: function(data, textStatus, jqXHR){
            $("#response").html(data);
        },
        error: function (jqXHR, textStatus, errorThrown){
            console.log('Error ' + jqXHR);
        }
    });
});

但我遇到的问题是,在处理每个while($row etc..之前,它不会解析数据,我想将echo 1返回1,我将如何进行此操作

2 个答案:

答案 0 :(得分:1)

您在这里寻找的函数称为flush,这将允许您刷新Web服务器的写缓冲区(Apache,Nginx等)。

$pdo = new PDO('mysql:dbname=yourdb;host=127.0.0.1', 'root', '');
$sth = $pdo->prepare('SELECT * FROM `basket` WHERE `account_id`=?');
$sth->bindParam(1, $_SESSION['id'], PDO::PARAM_INT);
$sth->execute();

while($row = $sth->fetch(PDO::FETCH_ASSOC))
{
    echo $row['number'];
    flush();
}

您还使用了已弃用的函数(mysql_*),您应该考虑将这些函数替换为PDO或MySQLi(我已在我的帖子中为您完成此操作)。

注意:某些浏览器在显示内容之前需要一定数量的数据。

答案 1 :(得分:1)

如何采取不同的方法......

while($row = mysql_fetch_assoc($res)) {
    $search[] = $row['number'];

}

echo json_encode($search);

在你的成功回调函数中,你只需使用jQuery遍历你的json_encoded篮子元素数组()

loop through json array jquery

http://api.jquery.com/jQuery.each/