将URL参数添加到表单PHP HTML

时间:2011-04-20 02:12:08

标签: php html webforms

在表单操作中放置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' />

3 个答案:

答案 0 :(得分:14)

在我看来,你应该将它们添加为隐藏字段。如果你可以通过隐藏的表单字段

来尝试传递params是没有意义的

使用:

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

答案 1 :(得分:3)

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 ...
}

或者您可以使用案例构造:

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

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

答案 2 :(得分:2)

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

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