我已经启动了一个codeigniter项目,现在我必须对一个特殊的控制器进行ajax调用。
它是这样的: - 我有两个选择字段:1用于选择县,另一个必须填写选定县的城市。
问题是当我将选定的县id发送给ajax控制器时,我得到了一个非常奇怪的结果。
如果我在控制器中输入这样的东西:在控制器中回显“a $ county_id”,它会给我一个响应:a [selected county_id],但如果我只回显县id,它会显示一些json空响应,我不知道什么是错的,下面是代码:
ajax(jquery)调用。
$(document).ready(function(){
$('#judet').change(function(){
var county = $( "select option:selected" ).val();
$.ajax({
type:'POST',
/*dataType: "json",*/
data:{cou_county:county},
url:'<?php echo base_url("ajax_controller/") ?>',
success:function(){
console.log('id_judet:' + county);
},
error:function(mesaj){
console.log("there's an error");
}
});
});
});
codeigniter ajax_controller控制器:
public function index()
{ header('content-type text/html charset=utf-8');
$cou_county = $this->input->post('cou_county');
$decodedCounty = $cou_county;
echo "$decodedCounty";
}
县和城市选择器是两个简单的选择输入,如果您认为我没有很好地解释它,我会发布一些图片。
感谢您花时间阅读本文,并提前感谢那些花时间帮助兄弟的人。
答案 0 :(得分:1)
你不能在javascript中使用PHP代码:
<?php echo base_url("ajax_controller/") ?>
相反,你应该像这样创建一个js变量:
base_url = '<?php echo base_url("ajax_controller/") ?>';
然后将此变量与您的函数一起使用。
答案 1 :(得分:1)
为了使用base_url()
,你必须像这样在控制器中加载url helper ..
$this->load->helper('url');
或加载application/config/autoload.php
。
然后在你的ajax编辑url
到
url:'<?php echo base_url("ajax_controller/index");?>',
在控制器中:
public function index()
{
$cou_county = $this->input->post('cou_county');
echo $cou_county;
}
在ajax:
$.ajax({
type:'POST',
/*dataType: "json",*/
data:{cou_county:county},
url:'<?php echo base_url("ajax_controller/index");?>',
success:function(data){
console.log(data); //see your console
},
error:function(data){
console.log("there's an error");
}
});