我正在尝试确定在我的模型中执行的数据库更新是否成功,将其状态(成功或不成功)最终传递到我的视图,以便我可以适当地显示div。到目前为止,只要模型更新有效,它就会起作用,但是当它没有时它就不起作用了。我正在使用flashdata通过控制器传递数据。
我的模特:
public function editTicket($ticket)
{
$q = $this->db->where('ticketId', $ticket['ticketId']);
$q = $this->db->update('tickets', $ticket);
$results = $this->db->affected_rows();
return $results;
}
我的控制器:
public function editExistingTicket()
{
$this->load->model('tickets');
$date = date("Y-m-d H:i:s");
$ticket = array(
'ticketId' => $this->input->post('ticketId'),
'category' => $this->input->post('category'),
'headline' => $this->input->post('headline'),
'description' => $this->input->post('description'),
'assigned' => $this->input->post('assigned'),
'status' => $this->input->post('status'),
'priority' => $this->input->post('priority'),
'lastUpdated' => $date
);
if ($this->tickets->editTicket($ticket)){
$this->session->set_flashdata('edit', '1');
} else {
$this->session->set_flashdata('edit', '0');
}
}
我的观点(相关部分):
var edited = '<?php echo $this->session->flashdata('edit'); ?>';
if (edited == '1') {
$('#editMessage').slideDown('slow');
setTimeout(function(){$('#editMessage').slideUp('slow')}, 3000);
//sessionStorage.setItem('edit', '0');
} else if (edited == '2') {
$('#editFailMessage').slideDown('slow');
setTimeout(function(){$('#editFailMessage').slideUp('slow')}, 3000);
//sessionStorage.setItem('edit', '0');
}
关于我做错了什么想法?
感谢您的帮助!
答案 0 :(得分:0)
好吧,在控制器中,如果故障单更新失败,您将闪存数据设置为 0 :
$this->session->set_flashdata('edit', '0');
但正如您在视图中看到的那样,您希望变量已访问为 2 :
} else if (edited == '2') {
然后会出现错误框。
你应该修正你的价值观,我认为一切都会好的。