我在ajax部分受到攻击,其中我试图调用php控制器函数来更新下拉列表,
场景2下拉列表, 1)国家, 2)城市
根据从国家/地区下拉菜单中选择国家/地区,我需要在城市下拉列表中启用城市列表,同时尝试显示该国家/地区和所选城市中的酒店。
要求知道如何调用ajax中的控制器功能?
答案 0 :(得分:0)
不知道你是否使用了codeigniter,但我这样做是在codeigniter中这样做的
首先让我展示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
它包含两个方法(函数)名称func_first()
和func_second()
。
如果我们需要调用func_second()形式的func_first(),那么在codeigniter的情况下我们这样做
<?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;
}
}
?>