所以我试图创建一个名称的搜索,但当我点击sumbit按钮时,它会转到websitelink.com?=name=Nighel,但我希望它像这样websitelink.com/Nighel /
是的我已经在使用htacces,这就是为什么?=对我不起作用
我似乎无法弄清楚如何解决这个问题。
这是根据我的日志中的名称进行搜索
我用什么来获取名字
$name = isset($_GET['playername']) ? $_GET['playername'] : "";
<div class="ironman-nav">
<form>
<span class="ironman-nav__option">Search for username</span>
<input class="ironman-nav__option" type="text" name="playername" placeholder="Username..." autocomplete="off">
<input class="ironman-nav__option" type="submit" value="Submit">
</form>
</div>
答案 0 :(得分:1)
您可以使用javascript动态更改表单操作属性,并在按下键或输入表单之前使用输入值来解决此问题。
答案 1 :(得分:0)
客户端不知道您的服务器重写规则
test
中的客户website.com/test/
只是网址的一部分,因此如果您希望浏览器将表单提交到website.com/test/
,请将表单的操作属性设置为{ {1}}
如果您希望website.com/test/
部分是可变的,那么您必须动态构建表单的URL。像这样的东西
test
答案 2 :(得分:0)
我将我的回答分为两部分,第一部分解释原始代码的行为,第二部分将包含可能的实现路径。
HTML表单默认情况下会将所有输入标记(<input>
,<textarea>
,<select>
等)整理为字典,其中键是节点的名称(属性),值是节点的值(也是属性)。
所以在你的情况下,
$name = isset($_GET['playername']) ? $_GET['playername'] : "";
<div class="ironman-nav">
<form>
<span class="ironman-nav__option">Search for username</span>
<input class="ironman-nav__option" type="text" name="playername" placeholder="Username..." autocomplete="off">
<input class="ironman-nav__option" type="submit" value="Submit">
</form>
</div>
提交时将执行以下操作:
由于您希望请求转到/ thispage / VALUE_FROM_PLAYERNAME_INPUT,因此您需要修改该表单的提交事件处理程序。遗憾的是,由于您在加载搜索页面时没有目标用户名,因此会计师不会为您担心(因此表格标签的操作属性无法预先填充目标用户)。 / p>
var searchForm = document.querySelector('.ironman-nav form');
searchForm.addEventListener('submit', function(evt) {
searchForm.action = '' + searchForm.querySelector('input[name="playername"]').value;
});
我在搜索表单操作中放置一个空字符串的原因是,您需要在操作URL前加上任何内容。例如,如果您的搜索页面和结果页面被称为search.html
,那么searchForm.action = 'search.html' + searchForm.querySelector('input[name="playername"]').value;
。您必须执行此操作,因为它是相对URL(操作URL不以协议或斜杠开头),因此浏览器将从当前页面的父级开始搜索该资源。