javascript - 真正的 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]',
),
),
),
)
解决方案
不要让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
]);
推荐阅读
- jqgrid - 如何更改 jqgrid 搜索选项“选择选项”描述
- powershell - Powershell 不加载 System.Net.Http 程序集并忽略脚本中的 Add-Type
- java - 为什么 JFrame.setUndecorated(true) 使模式对话框在 Linux 上表现得像无模式?
- php - Symfony 3.2形成在文本字段上添加过滤器以删除不需要的字符的最佳方式
- batch-file - 如何批量修复 if 语句的错误
- angular - 如何使用快照处理嵌套数组/返回多个数组
- sql - 远程连接到连接到公共 IP 地址的设备上的 SQL Server
- flutter - 是否可以让导航抽屉在 Flutter 中始终打开?
- sqlite - 将内存中 SQLite 数据库用于带有 EF6 的 WPF 应用程序数据库
- javascript - 即使构造函数调试显示为 true,使用 instanceof 检查 sequelize 错误也会导致 false