Php / jquery:如何用循环显示db中数组加载元素的值?

时间:2016-07-24 16:25:30

标签: php arrays json ajax

我已经编写了以下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');
    }

它没有用,我找不到错误。你能帮帮我吗?

1 个答案:

答案 0 :(得分:2)

假设你的代码

$.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);
});