Php/jquery:如何用循环显示从数据库加载的数组元素的值


Php/jquery: How to show value of array loaded elements from db with a loop?

我已经编写了以下php代码:

$query = mysql_query("SELECT * FROM utenti WHERE username = '$username'");
$query_db = mysql_query("SELECT * FROM utenti");
$i = 0;
$array_user = mysql_fetch_array($query);
$dati = array("str"=>array()); 
while ($array_db = mysql_fetch_array ($query_db)) {
    if ($array_user[country] == $array_db[country]) {
        if ($array_user[city] == $array_db[city]) {
            if ($array_user[cap] == $array_db[cap]) {
                if ($array_user[square] == $array_db[square]) {
                    $dati["str"]["n".$i] = "Nome ".$array_db[username];
                    $i++;
                }
            }
        }
    }
}
echo json_encode ($dati);

我想在循环期间使用数据库中的元素加载数组:

$dati["str"]["n".$i] = "Nome ".$array_db[username];

然后在Ajax请求后显示此数组的索引和值:

... 
success:function(msg){
    if(msg){
        $.each(msg.str, function(key, value){
            console.log(key + ": " + value);
        });
    }else{
        $("#location").html('Not Available');
    }

它不起作用,我找不到错误。你能帮我吗?

假设您的代码

$.each(msg.str, function(key, value){
    console.log(key + ": " + value);
});

工作良好。

然后,您的尝试$("#location").html(key + ": " + value);意味着每次#location的内容都将被覆盖

相反,您可以使用append():

$.each(msg.str, function(key, value){
    console.log(key + ": " + value);
    $("#location").append(key + ": " + value);
});