我正在尝试从jquery保存数据,但它不起作用所以我需要你的帮助! 我正在使用CakePHP 2.3。所以这是我的jQuery
$.ajax({
url: 'http://localhost/test/reservations/save',
type: 'POST',
data: {reservation_time_from : calEvent.start, reservation_time_to: calEvent.end, user_id : "1", laboratory_id : "1"},
success: function(data) {
alert("saved")
}
});
控制器
public function save() {
if ($this->data != null) {
$this->Reservation->save($this->request->data);
}
$this->autoRender = false;
}
由于jQuery中的日期格式(2013年8月26日11:00:00 GMT + 0200),它可能无法正常工作?
答案 0 :(得分:1)
您的数据格式不正确,无法将其传递给Model::save()
。请参阅文档:
http://book.cakephp.org/2.0/en/models/saving-your-data.html
它应采用以下格式:
Array
(
[ModelName] => Array
(
[fieldname1] => 'value'
[fieldname2] => 'value'
)
)
因此,传递给AJAX调用data
属性的对象应如下所示:
{ModelName: {fieldname1: 1, fieldname2: 2}}
在你的情况下:
{Reservation: {reservation_time_from: calEvent.start, reservation_time_to: calEvent.end, user_id: 1, laboratory_id: 1}}
检查POST请求而不是data
<{1}} 可能也是一个好主意,即:
null
同时检查您是否使用Security Component可能blackhole请求。
最后但并非最不重要的是,检查您已经提到过的日期格式,如果涉及验证,这可能也是一个问题,至少在表格列期望不同格式时会出现问题。因此,如有必要,请正确设置日期格式,如果您使用的是Convert JS date time to MySQL datetime,请参阅http://arshaw.com/fullcalendar/docs/utilities/formatDate/或FullCalender(仅根据您的事件/媒体资源名称进行猜测)。
答案 1 :(得分:0)
data: {reservation_time_from : calEvent.start, reservation_time_to: calEvent.end, user_id : "1", laboratory_id : "1"},
无效json。
您的密钥需要双引号才能被视为有效。
如果reservation_time_from是一个变量,那么你应该创建一个对象文字并按以下方式添加它:
myDataObject = {};
myDataObject[reservation_time_from] = calEvent.Start;
一旦构建了json对象,就可以将其作为数据键的值传递。