2016-12-01 78 views
1

我试图将2个PHP数组$ date_array和$ drop_array传递给javascript,以便可以检查它们的值并将其推送到预先存在的javascript数组中。将php数组传入javascript,检查数组值并将其推入新数组

<?php 
$date_array = array('12-08-2016', '12-09-2016', '12-10-2016', '12-12-2016', '12-13-2016', '12-14-2016', '12-15-2016', '12-16-2016', '12-17-2016'); 
$drop_array = array($drop1, $drop2, $drop3, $drop4, $drop5, $drop6, $drop7, $drop8, $drop9); 
?> 

其中$ drop1- $ drop9是数字值。我目前通过阵列这样,推动其价值的一个数组:

var date_array = '<?php echo json_encode($date_array); ?>'; 
var drop_array = '<?php echo json_encode($drop_array); ?>'; 
var disabledSpecificDays = ["12-11-2016","12-18-2016","12-16-2016","12-17-2016"]; 
for (var x = 0; x < drop_array.length; x++){ 
    var j = drop_array[x]; 
    if (j > 75){ 
     disabledSpecificDays.push(date_array[x]); 
    } 
} 

目前这样做的,添加日期排列打破我的日历。当我没有这个代码,只是将日期手动添加到数组日历工作正常禁用日期,所以我认为它是如何传递PHP值,并试图将他们推入数组

回答

3

您正在创建一个字符串与JSON的内容而不是实际的JSON数组。删除PHP标签周围的单引号。

var date_array = <?php echo json_encode($date_array); ?>; 
var drop_array = <?php echo json_encode($drop_array); ?>; 
+0

当我删除单引号我关闭标签似乎被忽略 ' ' 这些标签通常是在原子进行着色,但当我删除单引号周围的PHP结束标签变成灰色,我的日历不起作用。 – somebodystopme

+0

没有看到您的代码和HTML/JavaScript输出的其余部分,很难说... – doublesharp

+0

'' 即日历。我将不得不在另一条评论中添加我的日历的功能。 – somebodystopme

-1

您需要使用JSON.parse功能,所以它分析你的PHP代码中创建的JSON代码。例如:

var date_array = JSON.parse('');

的JSON.parse将JSON字符串转换成JavaScript数组

+0

这是不正确,你可以'JSON。解析()'字符串(用单引号括起来),但如果省略引号并且使其成为JSON对象而不是字符串,那么这是不必要的步骤。 – doublesharp