2011-06-03 5 views
5

Actualmente estoy usando jquery para obtener datos JSON a través de ajax desde una base de datos codeigniter backend/mySQL, que funciona bien. El problema que tengo es que, junto con los datos que se devuelven a la función jquery, también necesito ejecutar un bucle de PHP para algunos datos en otra tabla. Actualmente, lo que estoy haciendo es esperar un éxito ajax desde la primera función, y luego hacer otra llamada ajax a la segunda función, pero sé que hay una manera de hacerlo con una sola función, no estoy seguro de cómo. Estos son los dos consultas de bases de datos:código igniter php y jquery - cómo obtener datos de múltiples tablas y devolverlo a través de ajax

function get_selected_member($member = null){ 
     if($member != NULL){ 
      $this->db->where('id', $member); //conditions 
     } 
     $query = $this->db->get('members'); //db name 

     if($query->result()){ 
      $member_result = $query->row(); 
      return $member_result; 
     } 
    } 

Y

function get_all_groups(){ 
     $query = $this->db->get('groups'); 
     $result = $query->result(); 
     return $result; 
    } 

y luego en la función de JavaScript, lo que estoy haciendo es diciendo:

var post_url = "/index.php/control_form/get_selected_member/" + selected_member_id; 
$('#chosen_member').empty(); 
$.ajax({ 
    type: "POST", 
    url: post_url, 
    success: function(member) 
    { 
     //Add all the member data and... 

     var post_url2 = "/index.php/control_form/get_all_groups/"; 
     $.ajax({ 
      type: "POST", 
      url: post_url2, 
      success: function(group) 
      { 
     //Create a dropdown of all the groups 
      } 
     }); 
    } 
}); 

Respuesta

7

En PHP puede combinar ambas en uno, repítalo a ajax como variable json. Así que en php se necesita un cambio como siguiente

function get_member_with_group($member = null){ 
    $data['member'] = $this->get_selected_member($member); 
    $data['group'] = $this->get_all_groups(); 
    echo json_encode($data); 
} 

Luego, en algo así como Javascript a continuación ..

var post_url = "/index.php/control_form/get_member_with_group/" + selected_member_id; 
$('#chosen_member').empty(); 
$.getJSON(post_url, function(response){ 
    var member = response.member; 
    //do with member 
    var group = response.group; 
    // do with group 
}); 

Hope esto le ayudará a :)

+0

sí que es perfecta, gracias! – mheavers

+0

Realmente impresionante Muchas gracias mucho –

Cuestiones relacionadas