2014-05-12 49 views
0

我试图从PHP到JavaScript转换数组,但它似乎不工作。这里是我的PHP代码query.php作为JSON不工作将PHP字符串数组传递给JavaScript数组?

$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]); 
+0

什么'$ newdb'? – Markasoftware

+0

'var coupdb = <?= json_encode($ coupdb_js)?>;'。你看过生成的JS吗?很显然'var coupdb = Array;'是不正确的。 – Jon

+0

是的,你实际上并不是json编码任何东西。它只是试图把它变成一个字符串,这是行不通的。而且你不会试图解码它 – Markasoftware

回答

0

@Jon给我看了一个“Unexpected token <”...它将<?作为未知标记。

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

相反,这应该可能位于HTML中的<script>标记中,或者可能更适合作为AJAX呼叫。

+0

你是完全正确的,这是一个.js文件,无法识别php标签。 – user3321425

+0

@ user3321425你的代码和例子对我们来说是一团糟的调试。你意识到你通过Web服务器将PHP文件加载为URL,然后在jQuery中使用类似ParseJSON的解码? http://api.jquery.com/jquery.parsejson/ – JakeGould

+0

对不起@JakeGould很难弄清楚,因为有很多代码要粘贴。但简历是,我一直在证明将$ coupdb []传递给.js文件,但不包含json,结果不好。似乎php标签解释存在问题..如果我使用

0

最后,我已经找到一种方法,这是一个简单的方法,但也许不是最好的之一:)

从我的PHP我送逮住从BBDD的JavaScript文件coupdb变量:

<?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]); 
相关问题