Те, кто использовал кнопку type="image" и метод GET , обратили внимание, что в адресной строке появляются дополнительные параметры " x " и " y ", которые содержат координаты нажатия курсора мыши. Многим они не нравятся, и в этом материале я разберу несколько способов, как от них избавиться.

Удаление параметров

Те, кто использовал кнопку type="image" и метод GET, обратили внимание, что в адресной строке появляются дополнительные параметры "x" и "y", которые содержат координаты нажатия курсора мыши. Многим они не нравятся, и в этом материале я разберу несколько способов, как от них избавиться.

Пусть у нас будет следующий HTML-код:

<form name="search" action="search.php" method="get">
  <div>
    Поиск: <input type="text" name="query" />
    <br />
    <input type="image" src="images/button.png" alt="" />
  </div>
</form>

Самый первый способ избавиться от лишних параметров у кнопки image - это сделать редирект в отдельном файле. Для этого ставим в action, например, request.php, а уже в нём пишем следующий код:

<?php
  header("Location: search.php?query=".$_REQUEST["query"]);
  exit;
?>

Второй способ - это воспользоваться JavaScript. Для этого в тег form надо добавить атрибут onsubmit="return formSubmit(this)". Дальше в JavaScript надо создать вот такую функцию:

function formSubmit(form) {
  document.location = "search.php?query=" + form.query.value; // Делаем редирект
  return false; // Убираем стандартную отправку формы
}

И, наконец, третий вариант, который я сам в последнее время использую и который стоит использовать Вам - это использовать type="submit" и задавать внешний вид кнопки через CSS. Например, это можно сделать так:

input[type="submit"] {
  background: url("images/button.png") no-repeat;
  border: none;
  cursor: pointer;
  height: 40px;
  width: 250px;
}

Таким образом, мы фактически через CSS сделали внешний вид как у type="image", но при этом использовали всего лишь type="submit", у которого лишних параметров уже нет.

Вот такие способы удаления координат в адресной строке у кнопки с изображением Вы можете использовать.