繁体   English   中英

将多维数组从mysql传输到php到javascript

[英]Transferring a multidimensional array from mysql to php to javascript

我好像有点麻烦。 PHP部分似乎运行良好,但是我似乎无法将信息传递到JS部分。 这是我目前拥有的:

<!DOCTYPE html>
<html> 
  <body>
    <?php
    $servername = "localhost";
    $username = "username";
    $password = "password";
    mysql_connect($servername, $username, $password) or die(mysql_error());
    mysql_select_db("stuff") or die(mysql_error());
    $result = mysql_query("SELECT Location, Latitude, Longitude FROM Places WHERE Latitude IS NOT NULL GROUP BY Location, Latitude, Longitude");
    $places = array();
    while (($row = mysql_fetch_array($result, MYSQL_NUM)) !== false) {
        $places[] = $row;
    }
    ?>
    <script>
    function makeTableHTML(myArray) {
        var result = "<table border=1>";
        for(var i=0; i<myArray.length; i++) {
            result += "<tr>";
            for(var j=0; j<myArray[i].length; j++){
                result += "<td>"+myArray[i][j]+"</td>";
            }
             result += "</tr>";
        }
    result += "</table>";
    return result;
    }
    var places = "<?php echo json_encode($places) ?>";
    makeTableHTML(places);
    </script>
  </body>
</html>

我已经测试了PHP部分,并且工作正常。 我对JS很陌生,我不确定如何进行测试/调试。 任何帮助,将不胜感激。

我在这里找到了makeTableHTML函数,希望对您有所帮助,但是我没有运气。

您的PHP似乎正在运行。 另外,您的javascrip HTML代码生成似乎还可以。 但是您无处将表写入DOM。

因此,您必须选择一个DOM元素并将makeTableHTML的结果写入其中。 例如:

document.getElementsByTagName("BODY")[0].innerHTML += makeTableHTML(places);

在您的代码示例中,直接使用PHP生成表会更有意义。 仅当您要动态更改站点时才使用Javascript。

我不知道您要在这里归档什么,但是也许您应该研究ajax请求。 但是很难说,不知道要创建什么。

您还询问了有关如何调试JavaScript的问题,当然您可以使用alert()在代码中输出任何变量。 但是在更复杂的情况下,建议使用调试器。 有关如何在Firefox中使用它的信息,请参见此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM