在ci中提出ajax请求时如何更改当前页面的url?

时间:2018-10-09 17:31:25

标签: php ajax codeigniter url model-view-controller

我创建了动态相关的下拉列表,我在其中选择和选项并将请求发送到控制器以从数据库中获取数据。从数据库中获取数据后,我需要在URL中显示选定的选项名称。我无法执行此操作,无法获得相同的页面网址。

查看:

<script type="text/javascript">
            $(document).ready(function(){
                /* Populate data to state dropdown */
                $('#country').on('change',function(){
                    var countryID = $(this).val();
                     var countryName=  $('#country option:selected').html();
                            //  alert(countryName);
                    if(countryID){
                        $.ajax({
                            type:'POST',
                            url:'<?php echo base_url('bank/getDistrict'); ?>/'+countryName,
                            data:'country_id='+countryID,
                            success:function(data){
                                $('#state').html('<option value="">Select District</option>'); 
                                var dataObj = jQuery.parseJSON(data);
                                if(dataObj){
                                    $(dataObj).each(function(){
                                        var option = $('<option />');
                                        option.attr('value', this.id).text(this.district_name);           
                                        $('#state').append(option);
                                    });
                                }else{
                                    $('#state').html('<option value="">District not available</option>');
                                }
                            }
                        }); 
                    }else{
                        $('#state').html('<option value="">Select state first</option>');
                        $('#city').html('<option value="">Select district first</option>'); 
                    }
                });

控制器:

public function getDistrict(){
    $states = array();
    $country_id = $this->input->post('country_id');
    if($country_id){
        $con['conditions'] = array('state_id'=>$country_id);
        $states = $this->Bank_model->getDistrictRows($con);
    }
    echo json_encode($states);
}

型号:

function getDistrictRows($params = array()){
    $this->db->select('s.id, s.district_name');
    $this->db->from($this->districtTbl.' as s');

    //fetch data by conditions
    if(array_key_exists("conditions",$params)){
        foreach ($params['conditions'] as $key => $value) {
            if(strpos($key,'.') !== false){
                $this->db->where($key,$value);
            }else{
                $this->db->where('s.'.$key,$value);
            }
        }
    }

    $query = $this->db->get();
    $result = ($query->num_rows() > 0)?$query->result_array():FALSE;

    //return fetched data
    return $result;
}

我当前的网址是:http://localhost/real_estate/bank

请求后,我仍然得到相同的URL。它没有附加所选选项的名称。 我想要这样的URL:http://localhost/real_estate/bank/delhi

如果我从选择选项中选择德里

0 个答案:

没有答案