无法在codeigniter中使用ajax填充下拉列表

无法在codeigniter中使用ajax填充下拉列表,ajax,codeigniter,Ajax,Codeigniter,上面的链接在左侧有一个过滤器。我正在尝试使用ajax从州政府获取城市信息。但是当ajax被触发时,整个查询都在改变 SELECT * FROM (`ri_ad_post`) WHERE `state_slug` = 'west-bengal' AND `city_slug` = 'kolkata' AND `cat_slug` = 'pages' AND `expiry_date` > '2014-03-21' ORDER BY `id` DESC 它在查询控制器名为page

上面的链接在左侧有一个过滤器。我正在尝试使用ajax从州政府获取城市信息。但是当ajax被触发时,整个查询都在改变

SELECT * FROM (`ri_ad_post`)
WHERE `state_slug` =  'west-bengal'
AND `city_slug` =  'kolkata'
AND `cat_slug` =  'pages'   
AND `expiry_date` > '2014-03-21'
ORDER BY `id` DESC
它在查询控制器名为pages时使用控制器名

实际查询是:

SELECT *
FROM (`ri_ad_post`)
WHERE `state_slug` =  'west-bengal'
AND `city_slug` =  'kolkata'
AND `cat_slug` =  'electronics-and-technology'   
AND `expiry_date` > '2014-03-21'
ORDER BY `id` DESC
//控制器

public function ad_list($state,$city,$category,$sub_cat=FALSE)
{
    if($state===NULL || $city===NULL || $category===NULL)
    {
        redirect(base_url());
    }
    if ($sub_cat === FALSE)
{
    $data['ad_list'] =  $this->home_model->get_adlist($state,$city,$category);
}
    $data['ad_list'] = $this->home_model->get_adlist($state,$city,$category,$sub_cat);



    $this->load->view('templates/header1', $data);
    $this->load->view('templates/search', $data);
    $this->load->view('ad-list', $data);
    $this->load->view('templates/footer', $data);
}
public function get_cities()
{
    $state_id =  $this->input->post('state');
    echo $this->city_model->get_cities($state_id);
}
//家用模型

public function get_adlist($state,$city,$category,$sub_cat=FALSE)
{
    if ($sub_cat === FALSE)
    {
        $this->db->where('state_slug', $state);
        $this->db->where('city_slug', $city);
        $this->db->where('cat_slug', $category); 
        $this->db->where('expiry_date >', date("Y-m-d"));
        $this->db->order_by('id', 'DESC');
        $query = $this->db->get('ad_post');
    }

    $this->db->where('state_slug', $state);
    $this->db->where('city_slug', $city);
    $this->db->where('cat_slug', $category); 
    $this->db->where('sub_cat_slug', $sub_cat); 
    $this->db->where('expiry_date >', date("Y-m-d"));
    $this->db->order_by('id', 'DESC');
    $query = $this->db->get('ad_post');



    return $query->result_array();
    //echo $this->db->last_query();
}
//状态模型

class State_model extends CI_Model {

public function __construct() {
 $this -> load -> database();

}

function get_states() {
 $query = $this->db->order_by('state', 'ASC')->get('state');
 return $query->result_array();
 }
}

//城市模型

class City_model extends CI_Model {

public function __construct() {
 $this -> load -> database();
 //$this->output->enable_profiler(TRUE);

}
function get_cities($state){
 if($state != NULL){
    $this->db->where('state_id', $state);

    $query = $this->db->get('city');
    $cities = array();
    $html = '';
         if($query->result())
         {
            $html .= '<select id="city_id" name="city_id">';
            $html .= '<option value="">-- Select City --</option>';
            foreach ($query->result() as $city) 
            {
                $html .= '<option value="'.$city->id .'">'.$city->city.'</option>';
            }
            $html .= '</select>';
            return $html;
         }
         else
         {
            return FALSE;
         }
    }
    else
    {
        $html = '<option value="">--Select City--</option>';
        return $html;
    }
}
}

//阿贾克斯

<script type="text/javascript">
        $(document).ready(function () {
            $('#state_id').change(function () {
                var selState = $(this).val();
                alert(selState);
                console.log(selState);
                $.ajax({   
                    url: "pages/get_cities", 
                    async: false,
                    type: "POST", 
                    data : "state="+selState, 
                    dataType: "html", 

                    success: function(data) {
                    $('#city').html(data);
                    $("#location_id").html("<option value=''>--Select location--</option>");
                    }
                })
            });
        });
    </script> 
请帮我解决这个问题。请检查我提供的url,并尝试从“筛选器”部分选择一个状态。问题将更清楚。

在controller中尝试此操作

public function get_cities()
{
    $state_id =  $this->input->post('state');
    $cities = $this->city_model->get_cities($state_id);
    echo  '<option value="">-- Select City --</option>';
    foreach($cities as $city){
      echo   '<option value="'.$city->id .'">'.$city->city.'</option>';
   }
}
在ajax中

 success: function(data) { $('#city_id').html(data)}

粘贴页面代码。phppublic函数get_adlist$state、$city、$category、$sub_cat=false对不起,公共函数ad_list$state、$city、$category,$sub_cat=false我已经粘贴了controller/pages.php第66行的控制器函数scan,因为它在第66行出现错误,即消息:未定义索引:cat_name有一些影响,但无法在城市下拉列表中获取数据我已对导致第66行错误的代码进行了注释
 success: function(data) { $('#city_id').html(data)}