【问题标题】:jquery mobile calender plugin not loading json datajquery移动日历插件不加载json数据
【发布时间】:2015-07-09 22:02:55
【问题描述】:

我从 envato 市场购买了这个 jQuery 移动日历插件,我遇到的问题是它没有检测到我的 PHP 生成的 JSON 数据。 这是我的 PHP 代码:

<?php

$output = ' {"eid":"1","title":"just event test","image":"1426791253.png","discription":"Montes, sociosqu voluptate ultrices, conubia eiusmod? Beatae illum. Mattis, vestibulum aenean integer quasi nisi convallis egestas tristique id, nunc impedit. Eligendi magni, curae eligendi! Tempor purus sit sequi gravida dolor.","url":"","start":new Date("2015-02-22 14:00:00"),"end":new Date("2015-02-25 13:00:00")},
  {"eid":"1","title":"just event test","image":"1426791253.png","discription":"Montes, sociosqu voluptate ultrices, conubia eiusmod? Beatae illum. Mattis, vestibulum aenean integer quasi nisi convallis egestas tristique id, nunc impedit. Eligendi magni, curae eligendi! Tempor purus sit sequi gravida dolor.","url":"","start":new Date("2015-02-22 14:00:00"),"end":new Date("2015-02-25 13:00:00")},
  {"eid":"1","title":"just event test","image":"1426791253.png","discription":"Montes, sociosqu voluptate ultrices, conubia eiusmod? Beatae illum. Mattis, vestibulum aenean integer quasi nisi convallis egestas tristique id, nunc impedit. Eligendi magni, curae eligendi! Tempor purus sit sequi gravida dolor.","url":"","start":new Date("2015-02-22 14:00:00"),"end":new Date("2015-02-25 13:00:00")},
';

echo ($output);
?>

这是我的 JavaScript

$( document ).ready(function() {
var date1 = new Date();
var date2 = new Date();
var date3 = new Date();
var date4 = new Date();
var date5 = new Date();
var date6 = new Date();
var date7 = new Date();
var date8 = new Date();
var date9 = new Date();

date1.setDate(date1.getDate() - 30);
date2.setDate(date2.getDate() - 15);
date3.setDate(date3.getDate() - 13);
date4.setDate(date4.getDate() - 3);
date5.setDate(date5.getDate() + 5);
date6.setDate(date6.getDate() + 6);
date7.setDate(date7.getDate() + 12);
date8.setDate(date8.getDate() + 30);
date9.setDate(date9.getDate() + 38);

//var calEvents = "http://localhost/indicium/admin/data/app-calender.php";

var root = 'http://localhost/indicium/admin/data/app-calender.php';

$.ajax({
    url: root,
    method: 'GET',
    //dataType: 'JSONP'
}).then(function(data) {
    initCalendar(data);
});

function initCalendar(data) {
    alert(data);
  $("#calendar").jqmCalendar({
      events : data,
      months : ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
      days : ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
      startOfWeek : 1
   });
}
});

我只是在这方面 javascript 检测到数据(json)有什么帮助,我尝试通过警告它成功警告的数据进行调试,但是在我的浏览器控制台中我看到了这个(Cannot read property 'getTime' of undefined); 请帮忙。

这是工作的日历 javascript json 数据

var calEvents = [
    {"icon": "bars","eid":"1","title":"My event test","url":"#","start":new Date("2014-02-10T08:00:00.000Z"),"end":new Date("2014-02-10T10:00:00.000Z"),"discription":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet sem risus. Curabitur vehicula lacus eu tincidunt interdum."},
    {"eid":" 1","title":"My event test","url":"#","start":new Date("2014-02-10T17:00:00.000Z"),"end":new Date("2014-02-10T18:00:00.000Z"),"discription":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet sem risus. Curabitur vehicula lacus eu tincidunt interdum."},
    {"eid":"1","title":"My event 1","url":"#","start":date1,"end":date1,"discription":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet sem risus. Curabitur vehicula lacus eu tincidunt interdum."},
    {"icon": "info","eid":"2","title":"Event testing 2","url":"#","start":new Date("2015-04-03 18:54:00.000000"),"end":date3,"discription":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet sem risus. Curabitur vehicula lacus eu tincidunt interdum."},
    {"eid":"3","title":"My event 3","url":"#","start":date4,"end":date4,"discription":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet sem risus. Curabitur vehicula lacus eu tincidunt interdum."},
    {"icon": "alert","eid":"SomeID 4","title":"My event 4","url":"#","start":date5,"end":date6,"discription":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet sem risus. Curabitur vehicula lacus eu tincidunt interdum."},
    {"eid":"SomeID 5","title":"Just testing the calendar","url":"http://www.example.com","start":date7,"end":date7,"discription":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet sem risus. Curabitur vehicula lacus eu tincidunt interdum."},
    {"eid":"SomeID 6","title":"My event 6","url":"#","start":date8,"end":date8,"discription":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet sem risus. Curabitur vehicula lacus eu tincidunt interdum."},
    {"eid":"SomeID 7","title":"My event 7","url":"#","start":date9,"end":date9,"discription":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis sit amet sem risus. Curabitur vehicula lacus eu tincidunt interdum."},
];

【问题讨论】:

  • 您是否尝试过使用 .done 而不是 .then,这只是一个承诺,因此使用 then 没有多大意义。

标签: php jquery json jquery-mobile


【解决方案1】:

json 数据末尾缺少 [] 和不需要的逗号。使用这个:

<?php

$output = ' [{"eid":"1","title":"just event test","image":"1426791253.png","discription":"Montes, sociosqu voluptate ultrices, conubia eiusmod? Beatae illum. Mattis, vestibulum aenean integer quasi nisi convallis egestas tristique id, nunc impedit. Eligendi magni, curae eligendi! Tempor purus sit sequi gravida dolor.","url":"","start":new Date("2015-02-22 14:00:00"),"end":new Date("2015-02-25 13:00:00")},
  {"eid":"1","title":"just event test","image":"1426791253.png","discription":"Montes, sociosqu voluptate ultrices, conubia eiusmod? Beatae illum. Mattis, vestibulum aenean integer quasi nisi convallis egestas tristique id, nunc impedit. Eligendi magni, curae eligendi! Tempor purus sit sequi gravida dolor.","url":"","start":new Date("2015-02-22 14:00:00"),"end":new Date("2015-02-25 13:00:00")},
  {"eid":"1","title":"just event test","image":"1426791253.png","discription":"Montes, sociosqu voluptate ultrices, conubia eiusmod? Beatae illum. Mattis, vestibulum aenean integer quasi nisi convallis egestas tristique id, nunc impedit. Eligendi magni, curae eligendi! Tempor purus sit sequi gravida dolor.","url":"","start":new Date("2015-02-22 14:00:00"),"end":new Date("2015-02-25 13:00:00")}]';

echo ($output);
?>

【讨论】:

  • 我试过没用,我觉得这个问题更多是json数据,可能是日历的javascript,
  • 然后尝试从 php 中回显您在上面发布的工作 json
  • 不工作。你的解决方案是正确的,我认为它是日历 javascript;我得到(未捕获的类型错误:无法读取未定义的属性“getTime”)。
猜你喜欢
  • 2015-11-13
  • 1970-01-01
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 2013-05-15
  • 1970-01-01
相关资源
最近更新 更多