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

Setting an AJAX call and filling dropdown

本文关键字:填充 下拉列表 调用 AJAX 设置      更新时间:2023-09-26

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

<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 形式返回。

任何帮助都非常感谢。

你有没有尝试过将异步设置为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
         });
    });

如果电话现在应该工作,您能否在此处发布您的回复