将 json 值存储到数组
Store json values to an array
你好,我没有太多经验,但通常在 google 的帮助下我可以弄清楚,但今天不行。我正在制作一个约会程序,但我正在努力阻止日期选择器中数据库的值。
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"
});
})
你好,我没有太多经验,但通常在 google 的帮助下我可以弄清楚,但今天不行。我正在制作一个约会程序,但我正在努力阻止日期选择器中数据库的值。
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"
});
})