0

我想在 date(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;
}()
});
});
4

2 回答 2

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 */ });
       }
    }
});
于 2013-10-23T11:17:52.473 回答
-1

只需在成功函数之外声明 inp 变量,我想这应该对您有所帮助,甚至您可以将其解析为整数格式并使用。

$(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)
});
}
于 2013-10-23T11:19:05.570 回答