我正在代码点火器应用程序中进行ajax调用。 JS代码如下:
function removeGuest(guestID)
{
if(confirm("Are you sure you want to delete this guest and his preferences?"))
{
$.ajax({
type: "POST",
url: "/event/ajax_delete_guest",
data: { guestID: guestID },
success: function(data)
{
console.log(data);
}
});
}
}
这会发送给我的控制器:
public function ajax_delete_guest()
{
if($this->input->post('guestID'))
{
$guestID = $this->input->post('guestID');
if($this->events_model->delete_guest($guestID))
{
header('Content-type: application/json');
echo json_encode(TRUE);
}
else
{
header('Content-type: application/json');
echo json_encode(FALSE);
}
}
}
和我的模特:
public function delete_guest($guestID)
{
$tables = array('event_guest', 'event_guest_prefs', 'event_guest_hotel');
$this->db->where('guestID', $guestID);
if($this->db->delete($tables))
{
return TRUE;
}
else
{
return FALSE;
}
}
在数据库中删除访客时,它会在false
中返回console.log()
。但是,我很确定当删除成功时我会返回true
。任何人都有任何想法?我突然对此不以为然。感谢。
答案 0 :(得分:1)
您是否尝试过添加die()?我曾遇到过同样的问题,这解决了它。
if($this->events_model->delete_guest($guestID))
{
header('Content-type: application/json');
echo json_encode(TRUE);
die();
}
else
{
header('Content-type: application/json');
echo json_encode(FALSE);
die();
}
答案 1 :(得分:0)
这解决了它:
public function delete_guest($guestID)
{
$tables = array('event_guest_prefs', 'event_guest_hotel');
$this->db->where('guestID', $guestID);
if($this->db->delete('event_guest'))
{
$this->db->where('guestID', $guestID)->delete($tables);
return TRUE;
}
else
{
return FALSE;
}
因为prefs
和hotel
表不一定包含$ guestID的数据,所以原始检查返回false。 _guest
表总是包含数据,所以我现在只检查它,如果成功,我继续删除其他表。
}