【问题标题】:Transferring a multidimensional array from mysql to php to javascript将多维数组从 mysql 传输到 php 到 javascript
【发布时间】:2016-05-29 23:32:54
【问题描述】:

我似乎遇到了一些麻烦。 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 函数,希望它会有所帮助,但我没有运气。

【问题讨论】:

    标签: javascript php mysql arrays multidimensional-array


    【解决方案1】:

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

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

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

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

    我不知道你想在这里归档什么,但也许你应该研究一下 ajax 请求。但很难说,不知道你想创造什么。

    您还询问了如何调试 javascript,当然您可以使用 alert() 来输出代码中的任何变量。但在更复杂的情况下,建议使用调试器。请参阅here 了解如何在 Firefox 中使用它。

    【讨论】:

    • 感谢您的信息。我将通过 JS 将其放入 Google Maps API。最后,我只需要数组中的信息来绘制地图点。如果我手动编写数组,它会起作用,但如果我使用它,它就不起作用。这让我相信数组没有被忽略。我是整个 DOM 的新手,所以我必须阅读它。
    • 好的,那么您的方法似乎不错。正如我已经提到的,您还应该看看调试器。如果您已经使用过调试器,那么使用它应该不会有任何问题。您还可以在那里操作 DOM 或在运行时运行 javascript 命令。
    • 我似乎无法让它工作,即使使用调试器也是如此。它看不到二维数组。它似乎只是我设置的 PHP 脚本。也许我错过了什么。
    • 能否请您发布 php 脚本的输出?在浏览器中打开页面并显示源代码,然后将其复制到 jsfiddle 例如
    • 我不知道该怎么做。我可以在 PHP 中执行 print_r(),但我正在尝试对其执行 json_encode。我认为问题在于从 PHP 到 JS 的转移。我用谷歌搜索了一下,但似乎到处都说我做得对。
    猜你喜欢
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 2018-07-07
    相关资源
    最近更新 更多