Php 多个搜索输入输出为wordpress中的一个搜索
我正在尝试创建一个搜索框,它有4个输入,但输出为一个搜索。这是我目前的代码:Php 多个搜索输入输出为wordpress中的一个搜索,php,wordpress,forms,search,Php,Wordpress,Forms,Search,我正在尝试创建一个搜索框,它有4个输入,但输出为一个搜索。这是我目前的代码: <form method="get" id="searchform" action="http://sitename.com/"> <input type="text" name="s" /> <input type="text" name="a" /> <input type="text" name="b" /> <input type="text"
<form method="get" id="searchform" action="http://sitename.com/">
<input type="text" name="s" />
<input type="text" name="a" />
<input type="text" name="b" />
<input type="text" name="c" />
<div class="clear_space"></div>
<input type="submit" class="submit" name="submit" id="searchsubmit" value="Search" />
</form>
但wordpress中的输出是这样的:/?s=牛奶&a=鸡蛋&b=奶酪&c=大蒜&submit=搜索
但是我需要它这样输出:/?s=牛奶+鸡蛋+奶酪+大蒜&提交=搜索
因此,不知何故,这些额外的输入需要将它们的文本添加到第一个?s=中,只需一个+。。。非常感谢您的帮助。您在开玩笑吗
您正在寻找的
+
只是一个空格。有一个文本字段,当表单提交时,单词之间的空格将转换为+
哇,你有很多问题,但是在深入讨论之前,让我告诉你,你的“输出”实际上是一个get参数,或者一个URL。现在,您应该永远不要将同一id用于不同的标记(!!!)。如果你想了一个合理的理由,那么再想想
更改您的表格如下:
<form method="get" id="searchform" action="http://sitename.com/">
<input type="text" class="field" placeholder="Search" />
<input type="text" class="field" placeholder="Search" />
<input type="text" class="field" placeholder="Search" />
<input type="text" class="field" placeholder="Search" />
<input type="hidden" name="s" id="s" />
<div class="clear_space"></div>
<input type="submit" class="submit" name="submit" id="searchsubmit" value="Search" />
</form>
我需要4个输入,因为我正在构建一个工具,人们可以在其中搜索4个单独的项目。但他们需要返回一个搜索结果。因此,您使用explode
将结果拆分为一个数组或其他内容,然后编程逻辑,用数组中的任何一个单词查找结果。对不起,这是一个愚蠢的疏忽。我只是复制输入来创建表单中的4,看看发生了什么。我会试着把注意力集中在表单提交事件上,如果我还有其他问题,就回到这里。我猜.js将收集4个输入并创建get查询。js将确保您的隐藏输入包含要搜索的值(用空格分隔),并且在您的隐藏输入包含正确的值后,才应提交表单。我可以不使用php来执行此操作吗?有点担心,因为它说表单提交事件在IEF中不起作用“它”是什么,它在哪里说?当您在浏览器中使用该站点时,PHP将在服务器上执行。您必须在用户单击“提交”按钮之后和有效提交表单之前处理表单提交。所以你不能在服务器端做这件事,你不能在PHP中做这件事。好吧……我知道我现在需要.js来处理这个事件。还是有点摸不着头脑。我认为在提交表单时,提交事件会将4个输入的值合并为一个隐藏输入的值,这将是作为GET参数提交的值,对吗?在哪里可以学到更多关于实现这一点的知识?
//...
var value = "";
$(".field").each(function(){
value += ((value !== "") ? (" ") : ("")) + $(this).val();
});
$("#s").val(value);
//...