如何使用Ajax和Codeigniter更新'onchange'事件的div内容

时间:2017-02-09 15:52:19

标签: ajax codeigniter-3

我在WAMP上使用CodeIgniter v3.1.3。在我的一个视图(our_districts.php)中,我有一个包含地区名称的下拉列表:

<select class="form-control" id="ddlDist" name="ddlDist" onchange="popDistrictData();">
    <option value="0">--Select--</option>
    <option value="3">District A</option>
    <option value="4">District B</option>
    <option value="5">District C</option>
    <option value="6">District D</option>
</select>
<div id="districtData"></div>
<script type="text/javascript">
    function popDistrictData(){
        var dist_id = document.getElementById("ddlDist").value;
        $.ajax({
            type: "POST",
            url: "<?=site_url()?>section/ajax_call_pop_district_data/"+dist_id,
            dataType: "html",
            success: function(html){
                $("#districtData").html(html);
            }
        });
    }
</script>

部门控制器:

class Section extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->output->set_header('Content-Type:text/html; charset=UTF-8');
        $this->load->helper("url");
        $this->load->model("District_model");
    }
    public function view()
    {
        $data['section_name']='Districts';
        $this->load->view('templates/site_header',$data);
        $data["district_data"] = $this->District_model->pop_districts_in_combobox();
        $this->load->view('our_districts',$data);
        $this->load->view('templates/site_footer',$data);   
    }

    public function ajax_call_pop_district_data()
    {
        if ($this->input->post('distId') !="") {
            $did = $_POST['distId'];
            $dist_data = $this->District_model->pop_district_data($did);
            //what should i write here???.........
        }
    }
}

正如您所看到的,上面的下拉列表已由[{1}} 'pop_districts_in_combobox()'方法填充。在其'District_model'事件中, 我想使用Ajax填充id = districtData的div,如上所示。我的问题是如何填充'onchange'。请帮助解决一些代码。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您正在进行ajax调用,因此ajax应该返回将处理jQuery $ .ajax函数的代码。

在您的jQuery成功功能代码中,您正在做一个简单的TextView

所以在控制器函数ajax_call_pop_district_data中你应该做一个简单 $("#districtData").html(html);,它应该有模型函数echo $dist_data生成的html代码。