2011-09-01 3 views
0

Je fais un appel ajax dans une application d'allumage de code. Le code JS est le suivant:L'appel AJAX renvoie false lorsque j'attends vrai

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

Cela s'envoyer à mon contrôleur:

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

et mon modèle:

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

Lors de la suppression d'un invité dans la DB, il retourne false dans le console.log(). Cependant, je suis à peu près sûr que je le fais retourner true lorsque la suppression est réussie. Quelqu'un a quelquonque idée? Je me casse la tête dessus. Merci.

Répondre

0

Ce fixe il:

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

Parce que les prefs et hotel tables ne sont pas nécessairement contenant des données pour la RéfInvité $, le chèque original est retourné faux. La table _guest contient toujours des données, donc je vérifie juste cela maintenant et si cela réussit, je continue à supprimer les autres tables. }

1

Avez-vous essayé d'ajouter die()? J'ai déjà eu le même problème et cela l'a résolu.

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

Je l'ai résolu en changeant mon modèle. Je posterai une solution dans une minute. – cabaret