将PHP变量值传递给DatePicker Javascript

问题描述:

我只是一名业余爱好者,我对DateTimePicker的可用时间列表有点麻烦。我在寻找帮助,以了解代码为什么不起作用。我没有建立任何网站或类似的网站,我只是在练习。将PHP变量值传递给DatePicker Javascript

基础:

<script> 
 
$('#datetimepicker4').datetimepicker({ 
 
minDate:new Date(), 
 
allowTimes:['10:30','11:30','12:30'] }); 
 
</script>

完全列出的3次允许。

我的问题只是一个主体:为什么它不是这样工作的?

唯一的例子:

$time1 = "10:30"; 
$time2 = "11:30"; 
$time3 = "12:30"; 

$list = "'" . $time2 . "'," . $time3 . "'"; 

echo "<script>\n"; 
echo "$('#datetimepicker4').datetimepicker({ minDate:new Date(), allowTimes:[".json_encode($list)."] });"; 
echo "\n</script>"; 

如果我打印出来的 “$列表” PHP变量,它会显示:'11:30' , '12:30'。但在js只显示1个允许的时间而不是2个。实际上它可以是10个不同的时间,仍然只显示1.

我看不出两种上市方式的区别。

如果你能给我一个答案,我将不胜感激。

谢谢。

+0

尝试没有json_encode –

它只显示一次的原因是您只打印一个参数到allowedTimes。

[".json_encode($list)."]其中一切都用双引号括起来。您的输出是["'11:30',12:30'"]。所以你需要删除双引号才能有多个值。

此外,这不是最有效的方法。如果你知道你正在打印一个数组,为什么不以这种方式设置时间?

例子:

<?php 
$allowTimes = array(
    '10:30', 
    '11:30', 
    '12:30' 
); 
?> 

<script> 
$('#datetimepicker4').datetimepicker({ minDate:new Date(), allowTimes:<?php echo json_encode($allowTimes) ?> }); 
</script> 
+0

正要说同样的事情。它被当作一个字符串(并且在正确的位置缺少撇号,这是另一个问题本身)。另一种方法是修正缺少的撇号,也可以简单地回显字符串本身,如'echo“... allowTimes:[”。$ list。“] ...”'没有用encode_json包装它。 –