【发布时间】:2017-07-30 03:13:12
【问题描述】:
按国家/地区获取州
我创建了三个选项框来选择地区、州和国家。问题是国家运作良好,但是当我想获得城市和地区时,在我使用的其他脚本中给我错误的未定义变量是有效的。
未定义变量: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>
【问题讨论】:
-
不确定您没有发布的控制器中的函数是否还有其他内容,但错误似乎很明显:您在定义变量 $country_id 之前对其进行了测试。
-
使用 isset($country_id) 检查变量在使用前是否已设置。
-
我们能看到表单标签吗?此外,您没有将 country_id 传递给模型函数 get_cities。另一件事...... $country_id 变量没有在任何地方初始化。所以你的 iif 语句可能很混乱。
标签: php json ajax codeigniter