2013-08-05 59 views
1

下午所有。下面的代码完美的工作,但是,我需要拉出php sql数组的每一行,并进入脚本var。关于如何编写一个while循环可以做到这一点的任何想法?感谢您的帮助将PHP数组插入到JavaScript Array

var enableDays = ["<?php echo mysql_result($result, 0, 'date'); ?>"]; 

enableDays.push("<?php echo mysql_result($result, 1, 'date'); ?>"); 

附加代码::

$rows = array(); 

while ($row = mysql_fetch_assoc($result)) 
{ 
    $rows[] = $row; 
} 



    var enableDays = [<?php echo json_encode($rows); ?>]; 

    console.log(enableDays[1]); 
+0

我很好奇,你为什么不直接使用PHP编写返回JSON“服务”,并使用JavaScript中的Ajax方法调用它。 – Trendy

回答

3

你可以得到的行使用mysqli_fetch_assoc,然后将其编码为JSON:

<?php 
$rows = array(); 

while ($row = mysqli_fetch_assoc($result)) { 
    $rows[] = $row; 
} 
?> 


var enableDays = <?php echo json_encode($rows); ?>; 
+0

你可能想删除外面的'['''''''''json_encode'已经生成了一个有效的JS对象字面量,为什么还要把它打包在一个毫无意义的数组中呢? –

+0

当我这样做,然后使用console.log(enableDays [1]);要检查它,我只是说'未定义'的任何想法为什么?谢谢 – user2014175

+0

你使用'mysqli'吗? – jh314

2

拉出数据到一个PHP数组,然后转移,为JavaScript和

var enableDays = <?php echo json_encode($enableDays); ?>; 

顺便说一句,强制性建议您应立即停止使用PHP mysql扩展,因为它不是非常安全并且已被弃用;切换到更好的东西(mysqliPDO都是不错的选择)。

+0

我试过了,然后当我做一个console.log($ enableDays [1]);它说未定义。你将如何将它拉入到php数组中? – user2014175

+0

@ user2014175:你没有尝试*那*,因为它会起作用。你尝试过类似的东西*;告诉我们它是什么。 – Jon

+0

@ user2014175这个答案比我的要好。如果它不适合您,请尝试将json记录到您的PHP日志文件中,以确定您是否确实正确地生成了整个阵列。 – GreatBigBore

1

这是行不通的。一旦页面被加载,所有的PHP已经运行。但是,如果你真的只是添加下一个mysql_result每个推,你可以有PHP为您创建整个enableDays阵列:

<?php 
    echo 'var enableDays = ["' . mysql_result(...) . '", "' . mysql_result(...) . '"];' 
?> 
+0

如果其中一个结果包含双引号会怎么样?如果以斜线结尾呢?不要手动编码 - 这就是'json_encode'的用途。 – Jon

+0

你说得对。 json_encode()更好。 – GreatBigBore

1

希望这将有助于

<?php 
    $res = mysql_fetch_assoc($result) 
    foreach($res as $key => $val){ ?> 
      enableDays.push('<?php echo $val; ?>'); 
    <?php } 
    ?>