将PHP字符串数组作为JSON传递给JavaScript数组不工作

Passing PHP string array to JavaScript array as JSON not working?

本文关键字:数组 JavaScript 工作 JSON PHP 字符串      更新时间:2023-09-26

我试图将数组从PHP转换为JavaScript,但它似乎不起作用。这是我的PHP代码query.php:

$query = 'SELECT coupon FROM '.$disc;
$coupdb = array();
$results = $newdb->get_results($query);
foreach( $results as $result )
$coupdb[] = $result->coupon;
echo $coupdb[0]; //This shows perfectly the content but I want to send this array to a Javascript file.

我也尝试过JSON:

$coupdb_js = json_encode($coupdb);
这是我的JavaScript文件discount.js:
var coupdb = <?php echo $coupdb ?>;
alert(coupdb[0]);

和JSON:

var coupdb = <?php echo $coupdb_js ?>;
alert(coupdb[0]);

@Jon给我看了一个"意外的令牌<"…以<?为未知令牌。

所以你的PHP没有被处理。如果这是在.js文件中,它将无法工作,除非服务器设置为处理这些文件(坏主意)

相反,它应该在HTML中的<script>标记中,或者作为AJAX调用可能更好。

我终于找到了一个方法,这是一个简单的方法,但可能不是最好的方法:)

从我的php我已经发送了从bbdd捕获的coudb变量到javascript文件:

<?php
$DB_USER="dbuser";
$DB_PASSWORD="passdb";
$DB_NAME="dbname";
$DB_HOST="dbhost";
$newdb = new wpdb($DB_USER, $DB_PASSWORD, $DB_NAME, $DB_HOST);
$disc="discounts";

$query = 'SELECT coupon FROM '.$disc;
        $coupdb = array();
        $results = $newdb->get_results($query);
        foreach( $results as $result )
        $coupdb[] = $result->coupon;
?>
<script type="text/javascript">
    var coupdb = <?php echo json_encode($coupdb); ?>;
</script>

在js文件中,我通常使用变量:

alert (coupdb[0]);