我是ajax部分的Struck,我正试图调用php控制器函数来更新下拉列表
场景2下拉列表,1) 国家,2) 城市
根据从国家下拉列表中选择的国家,我需要在城市下拉列表中启用城市列表,同时尝试显示该国家和所选城市的可用酒店。
请求知道如何在ajax中调用控制器函数?
不知道你是否在使用codeigniter,但我用这种方式在codeigniters中使用
首先让我展示一下td_country和td_city表
|-----------------------------------------------------|
| country_id | country_title |
|-----------------------------------------------------|
| 1 | India |
|-----------------------------------------------------|
| 2 | Sri Lanka |
|-----------------------------------------------------|
和td_city
|----------------------------------------|
| city_id | city_title | country_id |
|----------------------------------------|
| 1 | Delhi | 1 |
|----------------------------------------|
| 2 | Columbo | 2 |
|----------------------------------------|
这将是您的浏览页面
<script type="text/javascript">
function get_city(country)
{
$.post("<?php echo base_url();?>ajax/get_city",{'country':country},
function(data)
{
$('option', '#city').remove();
content ="<option value=''>Select City</option>";
$('#city').append(content);
for(i=0;i<data.length;i++)
{
content ="<option value="+data[i].city_id+">"+data[i].city_title+"</option>";
$('#city').append(content);
}
}, "json");
}
</script>
<select id="country" name="country" onchange="get_city(this.value)">
<option value="">Select Country</option>
<?php
foreach($country as $c)
{?>
<option value="<?php echo $c['country_id'];?>"><?php echo $c['country_title'];?></option>
<?php
}?>
</select>
<select id="city" name="city">
<option value="">Select City</option>
</select>
现在在ajax.php控制器中,这是脚本
<?php
class ajax extends CI_Controller{
public function __construct() {
parent::__construct();
}
public function get_city()
{
$country_id=$_POST['country'];
$city=$this->db->query("SELECT * FROM td_city WHERE td_city.country_id = '$country_id'")->result_array();
$data['city'] = json_encode($city);
echo $data['city'];
}
}
?>
因此建议
[EDIT: as asked by OP in the comments]
假设我有一个名为common.php
的控制器
并且它包含两个方法(函数)名称CCD_ 2和CCD_。
如果我们需要从func_first()形式调用func_cond(),那么在代码点火器的情况下,我们这样做
<?php
class common extends CI_Controller{
public function __construct() {
parent::__construct();
}
function func_first()
{
$var = $this->func_second();
}
function func_second()
{
$ret = 1;
return $ret;
}
}
?>