2013-10-23 34 views
0

我想在日期(y,m,i)中傳遞ajax變量inp而不是i。如果我通過這個變量inp而不是我意味着它給了我一個空白頁。如何解決這個問題呢。ajax變量不能夠通過內部推jQuery中

$(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

爲什麼mysql被標記? –

回答

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'); 

這將使下面redudant的dataType

如果你想在datepicker中使用ajax響應,你需要在success回調中移動日期選擇器代碼。

$.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 */ }); 
     } 
    } 
}); 
+0

謝謝你完美的工作。他們是否有可能從數據庫中獲取json中的多少行返回值。 – Serma

+0

@Serma沒問題。有很多線索回答這個問題。這是一個例如http://stackoverflow.com/questions/6281963/how-to-build-a-json-array-from-mysql-database – Johan

-1

剛剛宣佈成功函數外部變量INP,我想這應該幫助你,甚至u能在整數格式和使用解析它。

$(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) 
}); 
} 
+0

這是一個異步調用。他將永遠無法使用回調中設置的值。 – Johan