2012-02-01 66 views
0

所有PHP的, 說我有下面的代碼位:值傳遞給jQuery的POST

select: function(start, end, allDay) { 
    var title = prompt('Event Title:'); 
    if (title) { 
     calendar.fullCalendar('renderEvent', 
      { 
       title: title, 
       start: start, 
       end: end, 
       allDay: allDay 
      }, 
      true // make the event "stick" 
     ); 
     alert(start); 
     jQuery.post("save_calendar_event.php", { 
      title: title, 
      start: start, 
      end: end, 
      allDay: allDay 
      }, function(data){ 
      alert(data); 
     }); 
    } 
    calendar.fullCalendar('unselect'); 
} 

然後,我有一個PHP頁面來接受這個職位值:

$title = $_POST['title']; 
$start_time = $_POST['start']; 
echo "The start time is: ".$start_time; 

如果我回顯$標題它的工作正常,但如果我做$ start_time它說價值不存在。當警報顯示在jQuery端的開始時,它有我想要傳遞的數據。爲什麼不把它傳遞給我的PHP頁面?

編輯:如果我做了我的警報警報顯示:太陽2012年1月29日12:00:00 GMT-0600(中部標準時間)

謝謝!

+0

使用瀏覽器的網絡監視工具來檢查發送到您的PHP腳本的POST參數。開始設置是否正確? – Phil 2012-02-01 02:48:44

+0

在你的php中,做一個'print_r($ _ POST)'。也許你的'start'變量被索引的方式不同,那麼你認爲。 – 2012-02-01 02:48:57

+1

它說「價值不存在」?沒有,它究竟說了什麼?另外,'var_dump($ _ POST)'給你什麼? – deceze 2012-02-01 02:49:05

回答

2

您必須先強制​​將您的startend js日期時間對象轉換爲string/timestamp(在發送到$ .post之前)。

start.valueOf(); // for timestamp or shortcut +start 
start.toUTCString() // to date format e.g. Wed, 01 Feb 2012 03:04:15 GMT 

@凱青我認爲jQuery已經爲你編碼了參數。

+0

@Phil謝謝,所以我不確定如何具體使用。在我使用POST發送之前,我會如何做到這一點? – user1048676 2012-02-01 03:14:14

+0

@ user1048676只需在'post()'數據對象中使用適當的方法,例如'{title:title,start:start.toUTCString(),end:end。toUTCString(),allDay:allDay}' – Phil 2012-02-01 03:19:57

+0

@Phil謝謝,這是行不通的。但是我只有一個問題。我在中央時區,所以6個小時後,我想要它。有沒有辦法讓它說6個小時? – user1048676 2012-02-01 03:25:13

0

編輯。請參閱rezigned的答案。此方法將工作,但不正確的:

嘗試用這種替代您的文章數據對象:

{ title: encodeURIComponent(title), start: encodeURIComponent(start), end: encodeURIComponent(end), allDay: encodeURIComponent(allDay) } 

然後不要忘記urldecode()在你的PHP端與數據做任何事情之前。

+0

您根本不需要這樣做。 jQuery正確編碼POST數據 – Phil 2012-02-01 02:59:19

+0

@Phil實際上,Kai是對的。我必須這樣做才能讓數據正確傳遞。當我這樣做時,數據就能夠被使用。 – user1048676 2012-02-01 03:00:09

+0

@ user1048676我剛剛測試過這一點,它絕不是必需的。 – Phil 2012-02-01 03:00:47