首页 > 解决方案 > 真正的 url 不适用于 javascript TYPO3 构建的 url

问题描述

我在我的页面中配置了扩展 tt_address。我需要按年份过滤地址。所以我建立了一个选择框。我需要在其 url 中附加一些查询参数以在控制器中访问以实现过滤器。该功能已成功完成。但是 realurl 不适用于此特定功能。

main.js

function initYearFilter() {
    var selectedItem = sessionStorage.getItem('year');
    if (selectedItem !== null) {
        $('.year-filter select').val(selectedItem);
    }
    $('.year-filter select').on('change', function () {
        var loc = location.href.match(/.*people\/alumni\/+/)[0],
            url;


        if ($(this).val() == 'reset') {
            url = loc + '?no_cache=1';
        } else {
            url = loc + '?ts_address[year]=' + $(this).val() + '&no_cache=1';
        }

        sessionStorage.setItem("year", $(".year-filter select").first().val());

        window.location.href = url;
    });
}

我的真实网址配置

'postVarSets' => array(
            '_DEFAULT' => array(
                'year' => array(
                    array(
                       'GETvar' => 'ts_address[year]',
                    ),
                ),
              ),
              )

标签: javascriptjquerytypo3realurl

解决方案


不要让urls在前端手动生成,就像在 Javascript 中那样。

我的建议是生成 urls 后端并将其附加到选项属性 ( data-reset-url, data-url)。

// maybe a foreach here
  $GLOBALS['TSFE']->cObj->typolink_URL([
      'parameter' => '_PAGEUID_',
      'additionalParams' => '?ts_address[year]=' . $year, // suppose in foreach have year var
      'no_cache' => true
  ]);

推荐阅读