将SQL查询的结果从PHP传递到Javascript数组

时间:2017-10-14 11:13:29

标签: javascript php arrays json

我习惯每天手动更新javaScript变量

<script>
    var data = [
            ['Austria','IBM','8284927','UF93NV', '10'],
            ['Spain','Dell','1098193','MN87QA', '4'],
            ...
          ];
    //rest of my code
<script>

我想使用PHP从SQL查询结果中将值传递给此变量,这样我就不需要每天键入多行。 我创建了这个PHP文件,我连接到我的数据库并将查询结果存储在一个数组中。

 <?php   
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$ser="*******";
$db="*******"; 
$user="*******"; 
$pass="*******";

$dbDB = new PDO("odbc:Driver=ODBC Driver 13 for SQL Server;Server=*******;Database=*******;Port=1456", $user, $pass);

$sth = $dbDB->prepare("SELECT top 2 [Country],[Customer Name],[Purchase Number],[Part Number],[Qty] FROM *******");
$sth->execute();

$result = $sth->fetchAll();

print_r($result);
 ?>  

正如您在结果下方看到的那样,它正常工作 enter image description here

现在我想使用 jason_encode 将变量 $ result 中的值传递给javaScript标记内的变量 data 。 我在同一个PHP文件中添加了以下代码

<script type="text/javascript">
    var data = <?php echo json_encode($result); ?>;
    alert(data.toString());
</script>

但是当我添加警报以查看我的变量数据的值时,我会收到此消息 enter image description here

我的变量应该是这样的

var data = [
['Austria','Tech Data Service GmbH','3508224010','01HV707', '4'],
['Austria','Tech Data Service GmbH','3508314557','40M7578', '1']
];

任何建议请问我错过了什么?谢谢。

1 个答案:

答案 0 :(得分:1)

您的变量中已存在数据。要查看对象的外观,可以使用alert(JSON.stringify(data))

您的data变量的内容不会是JavaScript中的数组,因为PHP中的关联数组是JSON中的对象。

要获得您想要的结果,最简单的解决方案是使用$result = $sth->fetchAll(PDO::FETCH_NUM);