提交按钮没有名称时如何处理表单提交按钮

How to handle form submit button when submit button has no name

提问人:jotty 提问时间:7/1/2014 最后编辑:Wilsonjotty 更新时间:7/1/2014 访问量:188

问:

我有一个搜索表单,提交按钮如下所示:

<input type="submit" name="search_submit" value="Go"/>

我使用以下 php 处理此表单:

if (isset($_GET['search_submit'])) {
    do blah
}

工作正常。但是我的 url 然后包括 &search_submit=Go。我不希望它出现。

我知道要解决这个问题,我需要从表单输入行中删除 name 属性。

但是我的 php 不再起作用,我不确定如何更改它以处理表单。我试着把它改成:

if (isset($_GET['submit']))

if (isset($_GET['Go']))

但他们也没有用。如果有人能帮我找到答案,那就太棒了。

PHP 按钮 提交

评论

1赞 Tasos 7/1/2014
为什么不发布表单或使用 AJAX 而不是使用 URL 来获取数据
0赞 padarom 7/1/2014
@Darren 正在提交的输入字段仍显示在 URL 中。
0赞 jotty 7/1/2014
好主意。是否可以将隐藏字段与提交按钮一起传递?哎呀,没关系,只要读一下帕达罗姆的回复:)
0赞 Tasos 7/1/2014
如果你不想要 (&search_submit=Go),你为什么要把它放在 URL 中。您能否添加有关如何编译 URL 的代码以查看

答:

0赞 Quentin 7/1/2014 #1

如果提交按钮没有名称,则它不会是一个成功的控件,并且根本不会出现在提交的数据中。

而是测试表单中是否存在来自其他字段的数据。

评论

0赞 jotty 7/1/2014
希望我至少可以对此以及其他一些帖子投赞成票。虽然还没有足够的代表:(
1赞 padarom 7/1/2014 #2

您不能删除输入元素的名称,因为 PHP 不知道要查找哪个值。如果要完全隐藏 URL 后面的字符串,请使用请求方法 POST 而不是:GET

<form action='myscript.php' method='POST'>
    <input type="submit" name="search_submit" value="Go"/>
</form>

您的 PHP 将使用以下内容:

$_POST['search_submit']; // Instead of $_GET['search_submit'];

关于何时使用 GET 和 POST 的一个很好的答案可以在这里找到。


编辑:如果您只想不让按钮显示在 URL 中,但其他所有内容都应该仍然存在(根据您的评论),您可以简单地删除提交按钮的值和名称。

您可以查找其他值,而不是查找要设置的值:search_submit

if (isset($_GET['username'], $_GET['password'])) {
    // Do your stuff here
}

评论

0赞 jotty 7/1/2014
这就是我所害怕的。不幸的是,我需要使用 GET,因为除了提交按钮之外,我的表单的每个部分都需要位于 url 中(用于浏览器后退按钮/书签功能)。所以我要么被困在 url 中显示提交,要么希望有另一个技巧?
0赞 jotty 7/1/2014
嗯,谢谢帕达罗姆。我想这可能是我唯一的选择,尽管我必须想出一个技巧来使用它......默认情况下,初始 GET(表单其余部分中的所有内容)在加载表单时进行设置。所以我无法检查它们,因为它们在我提交之前就已经设置好了。当然,默认情况下唯一未设置的是提交按钮:)但我想我可以利用你的解决方案背后的想法来想出一些东西......感谢您的提示:)
1赞 nawazlj 7/1/2014 #3

如果不想在 中显示字符串,可以使用该方法。和 之间的主要区别如下:URLPOSTGETPOST

GET格式:

  • 参数保留在浏览器历史记录中,因为它们是 URL 的一部分 可以添加书签。
  • 发送时不应使用 GET 方法
  • 密码或其他敏感信息。
  • 最多 7607 个字符 大小。
  • 网址示例:new.php?category=sport

邮 编

  • 参数不会保存在浏览器历史记录中。
  • 不能添加书签。
  • 发送密码或其他时使用的 POST 方法 敏感信息。
  • POST 方法的最大大小为 8 Mb。
  • URL 示例:new.php

示例代码:

if (isset($_POST["search_submit"])) {
    do blah
}