这是我的观点(ajax):
[int[]]
这是我的控制器:
$('#set_online_restricted').on('click', function() {
var status = "noauto";
var change_by = "administrator";
var date = new Date();
var date_time = (date.getMonth()+1)+"-"+date.getFullYear()+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
var message = " ";
var postData ={
'status': status,
'change_by' : change_by,
'date_time' : date_time,
'message' : message
};
$.ajax({
type: 'POST',
url: '..../index.php/home/set_changed_infos',
data: postData,
success: function (msg){
alert("data saved : " + msg);
show_service_status ();
},
error: function() {
alert("failed");
}
});
});
这是我的模特:
public function set_changed_infos(){
$this->Manage_service_status->set_service_status();
}
$ pliname目前是不变的。
当我点击按钮时,我得到"失败",但当我对此进行评论" $ this-> db-> update(' update_service', $数据);"请求没有失败,我的变量是纠正的。所以我不明白为什么?
提前感谢您的帮助。
答案 0 :(得分:1)
控制器
public function set_changed_infos(){
if($this->input->server('REQUEST_METHOD') === 'POST'){
$status = $this->input->post('status');
$change_by = $this->input->post('change_by');
$date_time = $this->input->post('date_time');
$message = $this->input->post('message');
$updateData['status'] = $status;
$updateData['status_change_by'] = $change_by;
$updateData['status_change_date'] = $date_time;
$updateData['status_message'] = $message;
$pliname = 'something'; // I've not seen where is your $pliname?
$this->Manage_service_status->set_service_status($updateData, $pliname);
}
}
模型
public function set_service_status($data, $pliname){
$this->db->where('name', $pliname);
$this->db->update('update_service', $data);
}
答案 1 :(得分:0)
您缺少where
声明,因此CI不知道要更新哪条记录
例如:$this->db->where('id', $id);
您可以阅读更多here
答案 2 :(得分:0)
请替换数据ARR中的模态函数
$data= array(
'status' => $status,
'status_change_by' => $change_by,
'status_change_date' => $date_time,
'status_message' => $message
);
答案 3 :(得分:0)
我的问题是date_time的格式,我只是用年份切换月份来尊重数据库中的dateformat(这是DATETIME),现在它可以工作了。谢谢你的帮助。