добавление параметров URL в форму PHP HTML

Можно ли правильно или правильно поместить параметр 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) 

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

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

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

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

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

используйте следующее:

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

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

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

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

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