我有一个 jQuery UI DatePicker,在单击时突出显示事件和事件信息。事件设置在静态(硬编码)数组中,格式如下:
var events = [
{ Title: "Event 1", Date: new Date("11/15/2013") },
{ Title: "Event 2", Date: new Date("11/15/2013") },
{ Title: "Event 3", Date: new Date("11/25/2013") },
{ Title: "Event 4", Date: new Date("11/30/2013") }
];
这很好用,但事件数组需要在 DatePicker 'onChangeMonthYear' 上更新,因此我每次选择新月份时都添加了一个 ajax 调用,但遇到了一些麻烦..
问题:如何使用 ajax 调用的返回值更新全局事件数组?
这是我到目前为止所尝试过的: PHP
$items = array();
foreach ($events as $event) {
$items[]= array('Title' => $event['SUMMARY'],'Date' => gmdate("m/d/Y",$event['DTSTART']));
}
echo json_encode($items);
JS
$.ajax({
type: 'GET',
async : false,
data: {start : firstDay, end : lastDay},
url: "ajax/getCalendarItems.php",
success: function(data){
events = data;
}
});
结果:
console.log(data)
[{"Title":"New event 1","Date":"12\/20\/2013"},{"Title":"New event 2","Date":"12\/20\/2013"},{"Title":"New event 3","Date":"12\/23\/2013"},{"Title":"New event 4","Date":"12\/30\/2013"}]
TypeError: '[{"Title":"New event 1","Date":"12\/20\/2013"},{"Title":"New event 2","Date":"12\/20\/2013"},{"Title":"New event 3","Date":"12\/23\/2013"},{"Title":"New event 4","Date":"12\/30\/2013"}]' is not a valid argument for 'in' (evaluating 't-1 in e')
最佳答案
您是否尝试过设置
dataType: "json",
contentType: "application/json; charset=utf-8",
在你的ajax调用的参数中?它应该自动解码您从 PHP 服务器传递的 json 数据。
因为看起来你的“data”参数仍然是 JSON。
请告诉我! :)
关于php - jQuery UI DatePicker - 使用 ajax 调用更新全局事件数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20140075/