我习惯每天以这种方式手动更新 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);
?>
现在我想使用 jason_encode 将变量 $result 中的值传递给 javaScript 标记内的变量 data。 我在同一个 PHP 文件中添加了以下代码
<script type="text/javascript">
var data = <?php echo json_encode($result); ?>;
alert(data.toString());
</script>
我的变量应该是这样的
var data = [
['Austria','Tech Data Service GmbH','3508224010','01HV707', '4'],
['Austria','Tech Data Service GmbH','3508314557','40M7578', '1']
];
有什么建议吗?我错过了什么?谢谢。
最佳答案
数据已经存在于您的变量中。要检查对象的外观,可以使用 alert(JSON.stringify(data))
。
data
变量的内容不会是 JavaScript 中的数组,因为 PHP 中的关联数组是 JSON 中的对象。
要获得所需的结果,最简单的解决方案是使用 $result = $sth->fetchAll(PDO::FETCH_NUM);
。
关于javascript - 将 SQL 查询结果从 PHP 传递到 Javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46743882/