Одно поле ввода текста с двумя кнопками отправки, поиск на отдельных страницах
У меня есть проект, который требует форму поиска, которая ищет два отдельных магазина eBay в зависимости от того, что ищет пользователь.
Я хочу иметь одно поле ввода с двумя кнопками отправки. У меня проблемы с получением формы, чтобы указать какой сайт вызывать с помощью любой из кнопок. Я внимательно осмотрелся и попробовал несколько вещей, но подумал, что кто-то сможет уточнить мой синтаксис и т. Д.
У меня есть форма.
<form target="_blank" action="rp.php" method="get">
<input type="text">
<button name="replacement" type="submit">Search Replacement Parts</button>
<button name="performance" type="submit">Search Performance Parts</button>
</form>
..и у меня есть PHP.
<?php
if( isset($_GET['replacement']) ) {
header("Location: http://www.example.com");
exit;
} else if {
( isset($_GET['performance']) ) {
header("Location: http://www.example.com");
exit;
}
?>
Я думаю, что я на правильном пути, просто нужна помощь. Я не знаю, использовать ли POST или GET, мне показалось, что GET имеет для этого больше смысла.
3 ответа
Вы можете использовать следующий код для этого:
<form target="_blank" name="myform" method="POST">
<input type="text" name="search">
<button onclick="submit1('http://example1.com/')" >Search Replacement Parts</button>
<button onclick="submit1('http://example2.com/')" >Search Performance Parts</button>
</form>
<script>
function submit1(url)
{
document.myform.action=url;
document.myform.submit();
}
</script>
Ваш PHP немного выключен для elseif
в противном случае это должно "работать"
<?php
if ( isset($_GET['replacement']) ) {
header("Location: http://www.example.com");
exit;
} elseif ( isset($_GET['performance']) ) {
header("Location: http://www.example.com");
exit;
}
?>
Вы можете использовать любой GET
или POST
чтобы сделать это, однако GET
приведет к тому, что значения запроса будут видны в строке запроса и будут иметь ограниченный размер в некоторых старых браузерах. POST
является предпочтительным, в этом случае вы бы заменили $_GET
с $_POST
в коде выше, и измените method="get"
в method="post"
в твоей форме.
Я бы использовал одно и то же имя для обеих кнопок, с разными значениями для каждой, а затем в php-коде просто проверял, какое значение отправлено.