首页 > 解决方案 > 转到上一页时返回 ajax 值

问题描述

我有一个 Ajax 正在运行以根据下拉字段获取一些数据。这可行,但是当我过滤并转到详细信息页面并返回上一页时。我再次看到所有项目,但下拉菜单中的项目仍显示最后检查的过滤器。

当我尝试使用 jquery 获取此数据时,它说第一个选项处于活动状态,但它显示我上次选择的任何选项。

落下:

<select class="input-filter" id="filter-countries" name="cbo-country">
  <option value="0"><?= $this->lang->line('all_countries') ?></option>
  <?php
  foreach($vacancies_countries as $c){
    ?>
    <option value="<?= $c->id ?>"><?= $c->{'name_'.LANG} ?></option>
    <?php
  }
  ?>
</select>

AJAX 功能:

function initFilters(){
  $('#filter-countries').on('change', function(){
    var country_id = $(this).val();

    $.ajax({
      type: 'POST',
      url: site_url + 'jobs/filter',
      data: {
        country_id: country_id
      },
      success: function(res){
        $('.vacancies-holder').html(res);
      }
    })
  });
}

有没有办法只显示所选下拉列表的项目或删除下拉标签以“全部显示”?

如您所见,当我返回时,下拉菜单显示“德国”(女巫是 ID:2),但实际上我得到了第一个 ID,即使显示屏显示“德国”

问题的可视化

标签: jqueryajax

解决方案


您可以在页面加载时运行它

$('#filter-countries option:first').prop('selected', true);`

如果您之前已经调用initFilters过,那么您可能需要此var country_id = $(this).val();操作以防止触发操作。

if (!country_id) {
    return;
}

推荐阅读