使用jQuery POST将值传递给PHP

时间:2012-02-01 02:28:05

标签: jquery post fullcalendar

全部, 说我有以下代码:

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;

如果我回显$ title,它可以正常工作,但如果我执行$ start_time,它表示值不存在。当在jQuery端显示启动警报时,它具有我想要传递的数据。为什么不将这个变量传递给我的PHP页面?

编辑 :如果我发出提醒,我的提醒会显示:2012年1月29日星期日中午12点00分(格林威治标准时间0600)(中央标准时间)

谢谢!

2 个答案:

答案 0 :(得分: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
@Kai Qing我认为jQuery已经为你编码了参数。

答案 1 :(得分:0)

编辑。请参阅重新签名的答案。这种方法可行,但不合适:

尝试用以下内容替换您的帖子数据对象:

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

然后在对数据执行任何操作之前,不要忘记在php端使用urldecode()。