【问题标题】:Codeigniter : Passing ajax based dataCodeigniter:传递基于 ajax 的数据
【发布时间】:2016-08-15 11:49:21
【问题描述】:

我正在根据onchange() 事件针对选定国家/地区获取城市数据。 我必须根据所选国家/地区填充城市数据。

class ajax extends CI_Controller {
    public function getcities(){
        if($this->input->post('countryId')){
            $countryId= $this->input->post('countryId');
        }
        foreach ($this->user_model->getselectedcity($this->input->post('countryId')) as $key => $value) {
             $cities[] = $value->city; 
        }
        echo json_encode($cities);
    }
 }

在我看来,我有这个脚本:

<script type="text/javascript">
    $(document).ready(function (){
        $('#changecountry').change(function(){
            //alert($(this).val());
            $.ajax({
                method: "POST",
                url: "<?php echo base_url()?>index.php/ajax/getcities",
                data:{countryId:$(this).val()}, 
                success: function(data){
                    console.log(data);
                }
            });
        });
    });
</script>

这些是我的下拉菜单:

<?php 
if($value['type']=='countryname'){
    if(isset($value['countryname'])){
        echo '<div class="form-group">';
        echo form_dropdown('countryname', $value['options'],'','class="form-control" id="changecountry"');
        echo '</div>'; 
    }
} 
if($value['type']=='cityname'){
    if(isset($value['cityname'])){
        echo '<div class="form-group">';
        echo form_dropdown('cityname',$value['options'],'','class="form-control"');
        echo '</div>';
    }
} 

在我获取 json 数据的成功函数中,我不确定如何将其传递给下拉列表:

["Dubai","Sharjah","Abu Dhabi","Ajman","Ras al-Khaimah","Umm al-Quwain"]

【问题讨论】:

    标签: javascript php jquery ajax codeigniter


    【解决方案1】:

    您需要使用 ID 属性将 Ajax 响应附加到您的 City 下拉列表中:

    <script type="text/javascript">
        $(document).ready(function (){
            $('#changecountry').change(function(){
                $.ajax({
                    method: "POST",
                    url: "<?php echo base_url()?>index.php/ajax/getcities",
                    data:{countryId:$(this).val()}, 
                    success: function(response){
                        $.each(response, function (index, value) {
                            $("#selectID").append("<option value='"+value+"'>" + value + "</option>");
                        });
                    }
                });
            });
        });
    </script>
    

    您的下拉菜单(在此处添加 ID 属性):

    <?php
    if($value['type']=='cityname'){
        if(isset($value['cityname'])){
            echo '<div class="form-group">';
            echo form_dropdown('cityname',$value['options'],'','class="form-control" id="selectID"');
            echo '</div>';
        }
    } 
    ?>
    

    【讨论】:

      【解决方案2】:

      在控制器中

      foreach ($this->user_model->getselectedcity($this->input->post('countryId')) as $option) {
           $cities[] = '<option value="'.$option["city"].'">'.$option["city"].'</option>';
      }
      

      在 AJAX 中

      success: function(html)
      {
          $("#state").html(html);
      }
      

      在 HTML 中

      <select class="form-control" id="state" name="state">
          <option selected="selected">--Select State--</option>
      </select>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-08
        • 1970-01-01
        相关资源
        最近更新 更多