[英]Store json values to an array
你好,我沒有太多經驗,但通常在谷歌的幫助下我可以弄清楚,但不是今天。 我正在制定預約計划,並且正在努力阻止來自日期選擇器中的數據庫的值。
JS:
<script>
$( function() {
$( "#datepicker" ).datepicker({
minDate: 2,
maxDate: "1w",
beforeShowDay: function(date)
{
var dates = new Array();
$.ajax({
url:"load_days.php",
type:"POST",
success:function(data)
{
for (var i = 0; i < data.length; i++){
dates.push(data)
}
},
dataType:"json"
})
var string = jQuery.datepicker.formatDate('dd-mm-yy', date);
return [ dates.indexOf(string) == -1 ]
}
});
} );
</script>
PHP文件:
$data = array();
$query = "SELECT * FROM events ORDER BY id";
$statement = $connect->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
foreach($result as $row)
{
$data[] = array(
'day' => date("d-m-Y", strtotime($row["start_event"]))
);
}
echo json_encode($data);
首先,我建議修改 PHP 腳本以刪除每個事件日期周圍的['day' => date]
數組包裝器。 這將使 JavaScript 更容易在數組中查找日期。
foreach($result as $row) {
$data[] = date("d-m-Y", strtotime($row["start_event"]));
}
然后我會稍微重新組織一下 JS,以便 load_days.php 中的日期只加載一次,然后重用而不是在每個 beforeShowDay 事件中重新加載。 將PHP返回的數據如上圖重新格式化后,ajax返回的數組就可以直接使用了,就不再需要for循環來轉換了。
$( function() {
$.ajax({
url: "load_days.php",
type: "POST",
success: function (dates) {
$( "#datepicker" ).datepicker({
minDate: 2,
maxDate: "1w",
beforeShowDay: function(date)
{
var string = jQuery.datepicker.formatDate('dd-mm-yy', date);
return [dates.indexOf(string) === -1]
}
})
},
dataType: "json"
});
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.