我在我的ModX应用程序的搜索表单上工作,该表单由一个块和一个片段组成。我想要实现的是将输入搜索框的内容传递给javascript变量,然后将其传递给我的代码片段,但是,代码段接收文字文本,而不是我输入参数的值当我打电话给它。
我不知道我在ModX中尝试了什么是可能的,或者我是否需要采取不同的方法,但我非常感谢能够提供任何见解的任何人。
组块:
<script>
$('.search-btn').click(function() {
var search = $('.search-entry').val();
[[showSearchResults? &q=`search`]]
});
</script>
段:
<?php
$search = $modx->getOption('q', $scriptProperties);
echo $search; // this always prints "search"
?>
答案 0 :(得分:1)
我怀疑这段代码是否合理:
<script>
$('.search-btn').click(function() {
var search = $('.search-entry').val();
[[showSearchResults? &q=`search`]]
});
</script>
代码段调用返回代码段执行的结果,其中param q 始终等于字符串&#39; search&#39;在你的情况下,最后在你的页面上你将有这样的东西:
<script>
$('.search-btn').click(function() {
var search = $('.search-entry').val();
'search' // assuming your snippet just returns what has been passed to it.
});
</script>
为了完成你的任务,你可以使用一个简单的技巧。像这样打电话给你的片段:
[[!yourSnippet? &yourVar=`[[!#POST.yourVar]]` ]] // or GET
让我们说这个代码片段位于可通过服务器上的url / test /访问的页面上。所以,现在你只需要使用AJAX将你从搜索表单中收集的参数发送到你的代码片段所在的/ test /页面:
var yourVar = $('.search-entry').val();
$.ajax({
type: "POST",
url: "/test/",
data: {yourVar: yourVar},
success: success,
dataType: "html"
});
希望有所帮助:)
PS如果你想搜索资源内容和电视内容,我强烈推荐一个名为SimpleSearch的额外内容。