gpt4 book ai didi

php - 消息: Undefined variable in controller of codeigniter

转载 作者:行者123 更新时间:2023-11-30 00:50:51 25 4
gpt4 key购买 nike

我正在使用 codeigniter 动态获取乡村城市,但我得到以下结果

错误:消息: undefined variable :country_id 文件名:controllers/countries.php

我的 Controller 是:

class countries extends CI_Controller {

public function __construct()
{

parent::__construct();
$this->load->model('Countries_model');
}
public function country()
{
$data=array();
$this->load->database();
$data['countries']=$this->Countries_model->get_countries();
$this->load->view('countries_view',$data);
}
public function get_cities()
{
$this->load->model('Countries_model');
$cities = $this->Countries_model->get_cities_by_country_id($country_id);

echo json_encode($cities);

}

查看:

<select id="country" name="country">
<option value="0">Select Country</option>
<?php foreach($countries as $val)
{
echo '<option value="'.$val['pkCountry'].'">'.$val['CountryName'].'</option>';

}
?>
</select>

<select id="city" name="city">
<option value="0">Select City</option>
</select>

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>
$(document).ready(function(e) {
$("#country").change(function(e) {
var selectedValue = $(this).val();
$.getJSON("/countries/get_cities/" + selectedVal, {}, function(cities) {
if(cities) {
$("#city").html("<option value=" + MCity.pkMCity + ">"+ MCity.Name +"</option>");
}
});
});
});
</script>

型号:

public function get_cities_by_country_id($country_id) {
$this->db->where('fkMCountry', $country_id);
$query = $this->db->get('MCity');

return $query->result();
}

路线:

$route['countries/get_cities'] = 'countries/get_cities';

数据库表国家:

pkCountry 国家名称

城市:

fkM国家名称

最佳答案

第一个 - Controller

你的 Controller 应该有第一个字母大写的类名

更改:

class countries extends CI_Controller {

至:

class Countries extends CI_Controller {

此外,在您的代码中,函数内部

public function get_cities()
{
$this->load->model('Countries_model');
$cities = $this->Countries_model->get_cities_by_country_id($country_id);

echo json_encode($cities);

}

您引用的参数 $country_id 未传递给该函数。这就是您收到错误的原因。尝试以下操作,应该可以消除错误。

public function get_cities($country_id)
{
$this->load->model('Countries_model');
$cities = $this->Countries_model->get_cities_by_country_id($country_id);

echo json_encode($cities);

}

第二个 - javascript

您的 JavaScript 代码中存在拼写问题,导致第二个错误(您在评论中提供)

更改:

var selectedValue = $(this).val();
$.getJSON("/countries/get_cities/" + selectedVal, {}, function(cities)

至:

var selectedValue = $(this).val();
$.getJSON("countries/get_cities/" + selectedValue, {}, function(cities)

第三 - 路由

您的路由定义并不表明 uri 中会有第三个段(象征着传递给函数的 $country_id 参数)。使用下面的内容,它最终应该可以工作。

$route['countries/get_cities/(:num)'] = 'countries/get_cities/$1';

或者如果您仍然遇到问题,请尝试

$route['countries/get_cities/(:any)'] = 'countries/get_cities/$1';

关于php - 消息: Undefined variable in controller of codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20994349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com