2017-07-28 263 views
2

我只是一名業餘愛好者,我對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 –

回答

2

它只顯示一次的原因是您只打印一個參數到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包裝它。 –