首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择region时捕获城市

选择region时捕获城市
EN

Stack Overflow用户
提问于 2013-04-12 17:25:30
回答 3查看 78关注 0票数 0

我有两个选择-一个用于地区,另一个用于城市。我想要的是,当我点击region时,它会通过Ajax转到我的数据库,并抓取正确的城市。实际上我已经抓取了它,但是我不能把它放在cities select中。

下面是我在JS Select function onClick事件代码中的Ajax函数:

代码语言:javascript
复制
$.ajax({
                url: '/map/index/ajax',

            type: 'POST',
            dataType: 'json',
            data: {
                // list of request parameters 
                'r_alias': valueRegionSelect
            },
            success: function(data) {
                console.log(data);
                $('#city_select').val(data.c_name);
            }
        });

Console.log(数据)显示

代码语言:javascript
复制
[Object { r_id="39",  r_alias="cu",  c_id="4649", c_name="Kyev" more...}, Object 
,  more...}]

这正是我需要的。

Ajax控制器:

代码语言:javascript
复制
public function ajaxAction() {
        $alias = $this->_getParam('r_alias');
        $result = Map_Model_Map_Factory::getCityByRegionAlias($alias);

        $this->view->cities = $result;
        $this->_helper->json($result);
    }

那么我该如何把它放在我的select中:

代码语言:javascript
复制
<select id="city_select" name="city">
                            <?php foreach($this->cities as $city): ?>
                            <option ><?php echo $city['c_name'] ?></option>
                            <?php endforeach; ?>
                        </select>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-12 17:30:50

您没有正确使用数据,应该正确使用

代码语言:javascript
复制
var html = "";
for (var i = 0; i < data.length; i++)
{
    html += '<option value="' + data[i].c_id + '">' . data[i].c_name . '</option>';
}
$('#city_select').html(html);
票数 1
EN

Stack Overflow用户

发布于 2013-04-12 17:39:41

在成功回调中,您可以执行以下操作:

代码语言:javascript
复制
success: function(data) {
    //data       = $.parseJSON(data);
    var select = $('#city_select').empty();

    $.each(data, function(i, item) {
        select.append($('<option></option>')
              .attr('value',item.c_id)
              .text(item.c_name)); 
    });
}

未经过测试,但它应该可以工作。

票数 1
EN

Stack Overflow用户

发布于 2013-04-12 17:40:07

您需要创建选项标记来填充select

代码语言:javascript
复制
$('#city_select').empty();
for (var i = 0; i < data.length; i++)
    $('#city_select').append($('<option>').val(data[i].c_id).html(data[i].c_name));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15967620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档