2011-09-01 45 views
0

我正在代碼點火器應用程序中執行ajax調用。 JS代碼如下:當我期望爲真時,AJAX調用返回false

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; 
    } 
} 

當取下一個數據庫中的客人,它返回falseconsole.log()。但是,我相當肯定,當刪除成功時,我會讓它返回true。任何人有任何想法?我打破了這個念頭。謝謝。

回答

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; 
    } 

因爲prefshotel表不一定包含在$ guestID數據,原始支票返回false。 _guest表總是包含數據,所以我現在只檢查一下,如果成功,我繼續刪除其他表。 }

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(); 
    } 
+0

我通過改變我的模型解決了它。我會在一分鐘後發佈解決方案。 – cabaret

相關問題