Одно поле ввода текста с двумя кнопками отправки, поиск на отдельных страницах

У меня есть проект, который требует форму поиска, которая ищет два отдельных магазина 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-коде просто проверял, какое значение отправлено.

Другие вопросы по тегам