繁体   English   中英

将 URL 参数添加到表单 PHP HTML

[英]adding URL parameters to a form PHP HTML

将 url get 参数放在表单操作中是否可以或正确?

<form method='get' action='index.php?do=search'>
  <input name='_search' type='text' value='What are you looking for?'>
  <button type='submit'> Search </button>
</form>

当我提交表单时,URL 更改为:

index.php?_search=What are you looking for? (I've stripped %20)

我更喜欢阅读网址

index.php?do=search&_search=What are you looking for?

最好在表单中添加一个隐藏字段

<input type='hidden' name='do' value='search' />

在我看来,您应该将它们添加为隐藏字段。 如果您可以通过隐藏表单字段来传递参数,那么尝试传递参数是没有意义的

使用:

<input type='hidden' name='do' value='search' />

A 看不出您为什么不能或不应该这样做的任何理由。 然而,我首选的处理方法是:

<form method='get' action='index.php'>
    <input name='_search' type='text' value='What are you looking for?' />
    <submit name='do' value='Search'>
</form>

do/search 的名称/值对通过按钮按下传递,如果您想在表单上创建多个操作,您可以为每个提交按钮设置不同的值,以多种方式处理表单。

if ($_GET['do'] == "Search") {
 ... do Search ...
} else if ($_GET['do'] == "Foo") {
 ... do Foo ...
} else if ($_GET['do'] == "Bar") {
 ... do Bar ...
}

或者,您可以使用 case 构造:

switch($_GET['do']) {
    case "Search":
        ... do Search ...
    case "Foo":
        ... do Foo ...
        break;
    case "Bar":
        ... do Bar ...
        break;
} 

我通常自己使用post ,但我确信get会以同样的方式工作。 希望这能回答你的问题。

我认为和 Teodor 一样,应该没有理由不将变量作为隐藏字段发送。 但是,如果您有充分的理由这样做……您是否尝试过在 url 末尾添加 & :

<form method='get' action='index.php?do=search&'>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM