javascript - 代码点火器 : Passing ajax based data

标签 javascript php jquery ajax codeigniter

我正在根据选定国家/地区的 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"]

最佳答案

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

<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>';
    }
} 
?>

关于javascript - 代码点火器 : Passing ajax based data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38954514/

相关文章:

jquery - 使用 css 或 jquery 隐藏标签和输入字段

javascript - 不在方括号之间按 "| "拆分

PHP/MYSQL 填充按查询结果排序的下拉列表

php - 如何在 CPanel/外部 Web 主机中初始化 PHP websocket 服务?

javascript - Linq 仅在 Internet Explorer 中创建错误

javascript - 如何在 Javascript 中向空数组添加项目

javascript - Google Calendar API 获取事件详细信息

javascript - 模式验证函数在 Mongoose 中如何工作?

javascript - 离开路线时 Angular 解除绑定(bind)事件

php - 包装文档/文字数组的示例