добавление параметров URL в форму PHP HTML - PullRequest
5 голосов
/ 20 апреля 2011

Правильно ли или правильно добавить параметр get url в действие формы?

<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)

IЯ бы предпочел, чтобы URL читался как

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

. Было бы лучше добавить скрытое поле в форму

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

Ответы [ 3 ]

14 голосов
/ 20 апреля 2011

На мой взгляд, вы должны добавить их в качестве скрытых полей. Нет смысла пытаться передавать параметры, если вы можете сделать это через скрытое поле формы

используйте это:

<input type='hidden' name='do' value='search' />
3 голосов
/ 20 апреля 2011

Я не вижу причин, почему вы не можете или не должны делать это таким образом.Однако мой предпочтительный метод обработки:

<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 будет работать так же.Надеюсь, что это отвечает на ваш вопрос.

2 голосов
/ 20 апреля 2011

Я думаю, что так же, как и в Teodor, не должно быть причин не отправлять переменную как скрытое поле.Но если у вас есть веская причина для этого ... Вы пытались добавить & в конце URL:

<form method='get' action='index.php?do=search&'>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...