我想在日期(y,m,i)中传递ajax变量inp而不是i。如果我传递这个变量inp而不是i意味着它给了我一个空白页面。如何解决这个问题。
$(document).ready(function() {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
$.ajax({
url : 'cal_db.php',
success:function(result)
{
var out = eval("("+ result +")");
var inp = out[0].id;
}
});
var arr = [];
$('#calendar').fullCalendar({
editable: true,
events: function(){
for(var i = 1; i <= 10; i++){
arr.push({
title: 'All Day Event',
start: new Date(y,m,i)
});
}
return arr;
}()
});
});
答案 0 :(得分:0)
请勿使用eval()
。在服务器上设置正确的mime类型和/或在ajax调用中将数据类型指定为json。
在 cal_db.php :
的最开始header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
这会使dataType
低于还原剂。
如果要在datepicker中使用ajax响应,则需要在success
回调中移动datepicker代码。
$.ajax({
url : 'cal_db.php',
dataType: 'json',
success:function(result) {
var inp = result[0] ? result[0].id : null;
if(inp){
$('#calendar').fullCalendar({ /* make use of inp */ });
}
}
});
答案 1 :(得分:-1)
只需在成功函数之外声明inp变量,我想这应该可以帮到你,甚至你可以用Integer格式解析它并使用它。
$(document).ready(function() {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var inp = -1;
$.ajax({
url : 'cal_db.php',
success:function(result)
{
var out = eval("("+ result +")");
inp = out[0].id;
}
});
var arr = [];
$('#calendar').fullCalendar({
editable: true,
events: function(){
for(var i = 1; i <= 10; i++){
arr.push({
title: 'All Day Event',
start: new Date(y,m,inp)
});
}