2012-02-01 68 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