【问题标题】:PHP variable value pass to DatePicker JavascriptPHP 变量值传递给 DatePicker Javascript
【发布时间】:2017-07-28 17:49:46
【问题描述】:

我只是一个业余爱好者,我对 DateTimePicker 可用时间列表有点麻烦。我正在寻求帮助以了解为什么代码不起作用。我没有建立任何网站或类似的东西,我只是在练习。

基本:

<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>";

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

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

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

谢谢。

【问题讨论】:

  • 尝试不使用 json_encode

标签: javascript php datetimepicker bootstrap-datetimepicker


【解决方案1】:

它只显示一次的原因是您只将一个参数打印到 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>

【讨论】:

  • 正要说同样的话。它被视为一个字符串(并且在正确的位置缺少撇号,这本身就是另一个问题)。另一种方法是,一旦修复了丢失的撇号,也可以简单地回显字符串本身,如 echo "... allowTimes:[".$list."] ... " 而不用 encode_json 包装它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-11
  • 2011-08-31
  • 1970-01-01
  • 1970-01-01
  • 2012-06-17
相关资源
最近更新 更多