将php数据库结果传递给javascript数组

时间:2015-01-29 17:51:19

标签: javascript php html

我必须创建一个下拉列表和一个按钮,一旦点击就会添加另一个下拉列表。我使用了这个javascript代码:

var array = ["Volvo","Saab","Mercades","Audi"];

        var cell2 = row.insertCell(1);
        var element2 = document.createElement("select");
        element2.name="activity_dropdown"
        element2.id="activity_dropdown"
        cell2.appendChild(element2);

        for (var i = 0; i < array.length; i++) {
            var option = document.createElement("option");
            option.setAttribute("value", array[i]);
            option.text = array[i];
            element2.appendChild(option);
        }

但我希望我的var数组来自数据库结果查询。我该怎么做才能将php数组传递给javascript数组?

顺便说一下..我试过用json_encode但似乎没有用..这里是我的代码:

for data.php

    <?php
    include('connection/dbConn.php');


// get data and store in a json array
$activity=$conn->query("SELECT activity_name FROM rehab_activities");


while ($row =mysqli_fetch_array($activity)) {
    $activities[] = array(
    'actvityName' => $row['activity_name']
    );
}

echo json_encode($activities);
 ?>

在这里试试,但没有任何结果:

<script>
 jQuery(document).ready(function(){
    jQuery("#add").click(function(){
    var res = new Array(); 
        jQuery.getJSON("data.php", function(data) {
    var i= 0;
    while(i<data.myarray.length){
                res[i]=data.myarray[i];
             i++;
    }
  jQuery("#result").html(res[0]);
            });
        });

    });
</script>
<body>
    <input type="button" id="add">
    <div id="result"></div>
</body>
</html>

2 个答案:

答案 0 :(得分:3)

php 在您的查询循环时写下脚本的那部分内容。像这样:

var array = [
    <?php
        $query = mysql_query("SELECT * FROM cars");
        while ($car = mysql_fetch_assoc($query)) {
            $car_name = $car["name"];
            echo "'$car_name',";
        }
    ?>
];

为此,文件必须是 php 文件,而不是 javascript 文件,因为在php文件中你也可以写html因此,javascript。

我个人通过创建一个名为 db-to-js.php 的文件来解决这个问题,该文件只包含由创建的 javascript数组 。每当数据库 修改时,这些javascript数组中的一个或多个也会被修改,因为每次执行此文件时都会创建

最后,您必须包含您需要的文件作为脚本:

<script type="text/javascript" src="db-to-js.php"></script>

我希望这会有所帮助。

答案 1 :(得分:-1)

我在vue js中遇到了类似的问题,将我的'app.js'文件重命名为'app.php',在那里我添加了所有的php函数并将参考脚本标记更改为

    <script> type='text/javascript' src='app.php' </script>

为我工作!