设置AJAX调用并填充下拉列表

时间:2013-11-15 14:38:43

标签: javascript ajax jquery

所以这里有两个下拉菜单:

<select id="CountryId">
<option value="16">UK</option>
<option value="17">Germany</option>
<option value="18">Italy</option>
<option value="19">Spain</option>
</select>


<select id="CityId"> </select>

在应用程序中我有一个php函数,它按国家/地区的ID返回城市列表:

{"63":"Rome","65":"Palermo","72":"Torino","73":"Milan"}

我尝试实现的是在第一个下拉列表中更改以获取国家/地区的ID并使用返回的城市填充第二个列表。

我尝试用这个AJAX调用实现它,并试图调试它,但似乎没有任何工作。 var data正在被接收,但没有其他事情发生。这是片段:

$('#CountryId').change(function(){
     var data = $('#EventCustomerId option:selected').val();

     $.ajax({
         type:'POST',
         async: true,
         cache: false,
         url: <?php echo Router::url(array('controller'=>'projects','action'=>'getbycustomer')) ?>,
         success: function(response) {
             jQuery('#CityId').html(response);
         },
         data: data
     });
     return false;
})

我对使用响应填充第二个下拉列表的方式不太安全。响应以JSON中的纯HTML格式返回。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您尝试过将异步设为false吗?

    $('#CountryId').change(function(){
         var data = $('#EventCustomerId option:selected').val();
         $.ajax({
             type:'POST',
             async: false,
             cache: false,
             url: <?php echo  Router::url(array('controller'=>'projects','action'=>'getbycustomer')) ?>,
             success: function(response) {
                 jQuery('#CityId').html(response);
             },
             data: data
         });
    });
如果电话现在可以使用,你可以在这里发布你的回复

相关问题