错误:未定义的变量json

时间:2017-03-09 08:25:21

标签: php json ajax codeigniter

按国家/地区获取州

我创建了三个选项框来选择区域,州和国家。问题是国家运作良好但是当我想得到城市和区域给我错误未定义的变量在我使用的其他脚本中工作。

未定义的变量:country_id

控制器

public function get_city()
{   
    $this->load->model('cities_model');
    header('Content-Type: application/json');

    $country_id = $country_id?$country_id:$this->input->post('country_id');
    if($country_id) 
    echo json_encode($this->cities_model->get_city());
}

模型

public function get_city($country_id = 0){
    return 
    $this->db->select('name as text, city_id as value')
            ->where('country_id', $country_id)
            ->get('cities')
            ->result();
 }

视图

<li>
                            <label class="form-label required">Country</label>
                            <div class="form-item">
                                <select class="selectpicker" name="country_id" data-url="/admin/events/get_countries" data-select="city-1" data-select-group="1" required></select>
                            </div>
                        </li>   
                        <li class="hide" data-select-group="1" data-select-sub="city-1">
                            <label class="form-label required">City</label>
                            <div class="form-item">
                                <select class="selectpicker" name="city_id" data-url="/admin/events/get_city" data-select="area-1" required></select>
                            </div>
                        </li>                                    
                        <li class="hide" data-select-group="1" data-select-sub="area-1">
                            <label class="form-label required">Area</label>
                            <div class="form-item area_id">
                                <select class="selectpicker" name="area_id" data-url="/admin/events/get_area" required></select>
                            </div>
                        </li>

3 个答案:

答案 0 :(得分:0)

在我看来这应该足够了:

public function get_city()
{   
    $this->load->model('cities_model');
    header('Content-Type: application/json');

    $country_id = $this->input->post('country_id');
    if(isset($country_id) && $country_id) {
        echo json_encode($this->cities_model->get_city());
    }
}

答案 1 :(得分:0)

在控制器中

试试这个

$ country_id = $ this-&gt; load-&gt; model('cities_model',$ country_id);

答案 2 :(得分:0)

试试这个

$ id = $ this-&gt; input-&gt; post(&#39; country_id&#39;)

$ country_id = $ this-&gt; load-&gt; model(&#39; cities_model&#39;,$ id);