javascript - 使用 JSON 将行传送到 JavaScript

标签 javascript mysql arrays json loops

我正在尝试将 mysql 表的行放入数组中,但到目前为止我还没有找到如何正确执行此操作的方法。如果有人能给我提示,我将不胜感激。我的做法可能非常非常错误,但到目前为止我还没有找到太多关于 JSON 和我的问题的信息。

    function updateMap(){
        var latlngArray = new Array();
        var titleArray = new Array();
        var ogvArray = new Array();
        var mp4Array = new Array();
        var webmArray = new Array();

        $.getJSON('getPOI.php', function(data){
            for(var i=0; data.length; i++){
                latlngArray[i] = data[i][0]; 
                alert(latlngArray[i]);
                titleArray[i] = data[i][1];
                ogvArray[i] = data[i][2];
                mp4Array[i] = data[i][3];
                webmArray[i] = data[i][4];
            }
        });
    }

php 文件:

        $con = mysql_connect($server,$benutzername,$passwort) or 
        die ("Keine Verbindung moeglich");

        mysql_select_db($datenbank, $con) or
        die ("Die Datenbank existiert nicht");

        $res = mysql_query("select * from POI");
        echo json_encode($res);
        mysql_close($con);

更新:它仍然无法正常工作。警报功能仅显示“0:[object Object],1:[object Object],...”我猜我没有正确访问数据:

jsontest.html:
<html>
    <head>
        <script src="jquery-1.6.1.js"></script>
        <script type="text/javascript">
            function updateMap(){           
                $.getJSON('getPOI.php', function(data) {
                        $.each(data, function(key, value){
                            alert(key + ': ' + value);
                        });
                    }
                );
            }   
        </script>
    </head>
    <body onload="updateMap()">
    </body>
</html>

getPOI.php:

<?php
    $server = "localhost";
    $benutzername = "user";
    $passwort = "pw";   

    $datenbank = "d0116c39";

    $con = mysql_connect($server,$benutzername,$passwort) or 
    die ("Keine Verbindung moeglich");

    mysql_select_db($datenbank, $con) or
    die ("Die Datenbank existiert nicht");

    $allResults = array();

    $res = mysql_query("select * from POI");

    while ($row = mysql_fetch_assoc($res)) {
        $allResults[] = $row;
    }

    echo json_encode($allResults);
?>

终于明白了:

<html>
    <head>
        <script src="jquery-1.6.1.js"></script>
        <script type="text/javascript">
            function updateMap(){           
                $.getJSON('getPOI.php', function(data) {
                        $.each(data, function(i, item){
                            alert(data[i]['Adresse']);
                            alert(data[i]['Titel']);
                        });
                    }
                );
            }   
        </script>
    </head>
    <body onload="updateMap()">
    </body>
</html>

最佳答案

调用此:

$res = mysql_query("select * from POI");

将执行查询,但不会获取数据:您必须获取它


这可以通过 mysql_fetch_assoc() 等函数来完成。 (查询选择的每行必须调用一次 - 通常在循环中完成)

每次获取一行时,将其添加到数组中。

并且,当您完成获取行并构建该数组后,json_encode() 它,并将生成的字符串回显给客户端。


您最终会得到看起来有点像这样的代码的一部分:

$allResults = array();

// Execute the query
$res = mysql_query("select * from POI");

// As long as you get rows, fetch them
while ($row = mysql_fetch_assoc($result)) {
    // And add them to the resulting array
    $allResults[] = $row;
}

// Which, in the end, can be JSON-encoded
echo json_encode($allResults);

关于javascript - 使用 JSON 将行传送到 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6769150/

相关文章:

javascript - 如何将这个条件逻辑转换为三元表达式?

javascript - JavaScript 中的 <> 运算符是什么?

php - 保存在目录中后强制下载文件 php?

javascript - 以不同方式对相同的 observableArray 进行排序

javascript - 使用Javascript数组或JSON来存储AJAX请求的返回值以供以后使用

javascript - 翻转由按钮触发的卡片

javascript - 使用 Google Maps JavaScript API v3 和 Geocoding API 映射多个位置

python - 使用python限制电子邮件的速率

mysql - 如何查找所有整数列已达到最大值的表?

java - 如何一次检查多个变量?