我正在尝试调整以下jQuery calendar module以将其与PHP和MySQL数据库集成。我遇到的问题是代码加载事件:
return {
events : [
{
"id":1,
"start": new Date(year, month, day, 12),
"end": new Date(year, month, day, 13, 30),
"title":"Lunch with Mike"
},
{
"id":2,
"start": new Date(year, month, day, 14),
"end": new Date(year, month, day, 14, 45),
"title":"Dev Meeting"
},
{
"id":3,
"start": new Date(year, month, day + 1, 17),
"end": new Date(year, month, day + 1, 17, 45),
"title":"Hair cut"
}
]
};
我想将其更改为从数据库中检索事件的AJAX查询。但我无法弄明白该怎么做。到目前为止,我想过使用JSON从一个调用数据的单独PHP页面获取信息,但是如何操作数据以返回正确的对象呢?
到目前为止,我有这样的事情:
$.ajax({
type: 'POST',
url: 'test.php',
dataType: 'json',
cache: false,
success: function(result) {
//how can I copy the results to be able to return them?
}
});
然后在test.php中我有类似
的东西 $sql = $db->query("SELECT * FROM calendar;");
$results = array();
while($row = mysql_fetch_assoc($sql))
{
$results[] = array(
'id' => $row['id'],
'start' => $row['start'],
'end' => $row['end'],
'title' => $row['title']
);
}
echo json_encode($results);
请记住,我还必须通过新的Date()传递开始值和结束值。
感谢您的时间。
答案 0 :(得分:2)
如果您的php页面正常工作,它应该返回一系列事件。所以变量结果就是那个数组。然后,您可以创建结构{events:result}并将其传递给您的日历。
success(result){
var myData = {events: result};//now you have your data in correct format.
}
答案 1 :(得分:1)
大多数人的关键问题是,返回的数据不符合您期望的格式。
试试这个组合: JS文件:
$.ajax({ type : 'POST', url : 'ajax_handle.php', dataType : 'json', data: { }, success: function( jsondata ){ $.each( jsondata, function(i, item) { alert( jsondata[i].start ); }); } });
PHP文件:
$sql = $db->query("SELECT * FROM calendar;"); $results = array(); while($row = mysql_fetch_assoc($sql)) { $results[] = array( 'id' => $row['id'], 'start' => $row['start'], 'end' => $row['end'], 'title' => $row['title'] ); } echo json_encode($results);
答案 2 :(得分:1)
在javascript中设置数据到您的网址
data: '/calendar/getData.php'
返回的JSON应该与此类似:
[{"id":1,"start":"2012-09-01T13:15:00","end":"2012-09-01T13:45:00","title":"title"}]
答案 3 :(得分:0)
$.ajax({
type: 'POST',
url: 'test.php',
dataType: 'json',
cache: false,
success: function(result) {
$("title").html(result.title);
$("start").html(result.start);
}
});
答案 4 :(得分:0)
Ajax请求
var result;
$.ajax({
type: 'POST',
url: 'Service/jsonService.aspx/GetItems',
data: "{'userID':'" + userID + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
error: function (xhr, ajaxOptions, thrownError) {
},
success: function (msj) {
result = JSON.parse(msj.d);
}
});
2.Week日历数据:
在 $ calendar.weekCalendar({... 部分
)上数据:结果
3.从db
获取数据var query = (from t in dc.Calendar
where t.Status== 1
&& t.UserID== userID
select t).ToList();
sb.Append("[");
foreach (var item in query)
{
sb.Append(" { ");
sb.Append("\"id\": \"" + item.ID + "\", ");
sb.Append("\"start\": \"" + item.DateItem.Year + "-" + item.DateItem.Month + "-" + item.DateItem.Day + "T" + item.StartTime+ "\", ");
sb.Append("\"end\": \"" + item.DateItem.Year + "-" + item.DateItem.Month + "-" + item.DateItem.Day + "T" + item.EndTime+ "\", ");
sb.Append("\"title\": \"" + item.Title + "\"");
sb.Append(" }, ");
}
result = sb.ToString().Substring(0, sb.ToString().Length - 2) + "]";
return result;