codeigniter php 和 jquery - 如何从多个表中获取数据并通过 ajax 返回

Posted

技术标签:

【中文标题】codeigniter php 和 jquery - 如何从多个表中获取数据并通过 ajax 返回【英文标题】:code igniter php and jquery - how to get data from multiple tables and return it via ajax 【发布时间】:2011-09-08 01:58:03 【问题描述】:

我目前正在使用 jquery 通过 ajax 从 codeigniter 后端/mysql 数据库获取 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
            
        );
    
);

【问题讨论】:

【参考方案1】:

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

希望对你有帮助:)

【讨论】:

真的太棒了,非常感谢

以上是关于codeigniter php 和 jquery - 如何从多个表中获取数据并通过 ajax 返回的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Blueimp FileUpload 上的 DELETE 方法不允许使用 Codeigniter/PHP(405 错误)?

可以在 CodeIgniter 视图中将 Javascript 或 jQuery 代码编写为 PHP 文件吗?

CodeIgniter 和 Javascript/Jquery 库

无法使用 jquery 和 ajax 删除多个用户(codeigniter 3)

使用 jquery / ajax 在 CodeIgniter 的控制器中调用函数

codeigniter 常用js php代码放在哪里