我目前正在使用jquery从codeigniter后端/ mySQL数据库通过ajax获取JSON数据,这很好。我遇到的问题是,与返回到jquery函数的数据一起,我还需要为另一个表中的某些数据运行PHP循环。目前我正在做的是等待第一个函数的ajax成功,然后对第二个函数进行另一个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;
}
}
和
function get_all_groups(){
$query = $this->db->get('groups');
$result = $query->result();
return $result;
}
然后在javascript函数中,我正在做的是:
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
}
});
}
});
答案 0 :(得分:7)
在PHP中,您可以将两者合二为一,然后将其作为json
变量回显给ajax。所以在php中你需要改变如下
function get_member_with_group($member = null){
$data['member'] = $this->get_selected_member($member);
$data['group'] = $this->get_all_groups();
echo json_encode($data);
}
然后在javascript之类的东西如下..
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
});
希望这会对你有所帮助:)。