Codeigniter奇怪的ajax导致控制器

时间:2017-01-28 15:55:42

标签: javascript php jquery ajax codeigniter

我已经启动了一个codeigniter项目,现在我必须对一个特殊的控制器进行ajax调用。

它是这样的: - 我有两个选择字段:1用于选择县,另一个必须填写选定县的城市。

问题是当我将选定的县id发送给ajax控制器时,我得到了一个非常奇怪的结果。

如果我在控制器中输入这样的东西:在控制器中回显“a $ county_id”,它会给我一个响应:a [selected county_id],但如果我只回显县id,它会显示一些json空响应,我不知道什么是错的,下面是代码:

  1. 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");
                    }
                });
            });
    
        });
    
  2. 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";
        }
    

    县和城市选择器是两个简单的选择输入,如果您认为我没有很好地解释它,我会发布一些图片。

  3. 编辑:ajax调用确实访问控制器,我实际上回显了那个id,但在响应中我得到了一些奇怪的json thingy而不是数字,如下图所示:

    the response

    感谢您花时间阅读本文,并提前感谢那些花时间帮助兄弟的人。

2 个答案:

答案 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");
                }
            });