由于JSON不起作用,将PHP字符串数组传递给JavaScript数组?

时间:2014-05-12 23:42:52

标签: javascript php arrays json

我正在尝试将数组从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]);

2 个答案:

答案 0 :(得分:0)

  

@Jon向我展示了一个&#34;意外的令牌<&#34; ...它将<?作为未知令牌。

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

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

答案 1 :(得分:0)

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

从我的php中我发送了从bbdd捕获的coupdb变量到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]);