Что делать, если submit повторно отправляет данные при нажатии кнопки отправки?

Есть форма, которая подставляет данные из поля ввода в URL и открывает ссылку в новой вкладке:

<form action="https://mysite.ru/search#" method="post" class="search" id="formurl" target="_blank">
  <input type="search" id='search01' name="search2" />
  <button type="submit" name="submit" onclick="formurl.action += encodeURIComponent(search01.value)"  />
</form>


Она работает, но есть проблема. Если нажать кнопку submit еще раз, то новое значение поля ввода будет добавлено к старому. То есть ссылка будет такая: https://mysite.ru/search#СТАРОЕ_ЗНАЧЕНИЕНОВОЕ_ЗНАЧЕНИЕ

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

Заранее спасибо.

Вопрос закрыт. Проблему решил следующим образом:

<script>
	function update_href(id,value){
		document.getElementById(id).href='https://mysite.ru/search#'+value;
	}
</script>
<input type="text" onchange="update_href('link', this.value );" size=30>
<a href="https://mysite.ru/search#" target="_blank" id="link">Перейти</a>


Но все равно всем спасибо!
  • Вопрос задан
  • 613 просмотров
Пригласить эксперта
Ответы на вопрос 3
opium
@opium
Просто люблю качественно работать
блокируйте просто кнопку после нажатия, чтобы два раза нельзя было нажать
Ответ написан
Комментировать
@Inwork277
Ну либо блокируйте, как Выше сказали, либо
... var formAction = "https://mysite.ru/search#"; ...

... onclick="formurl.action = formAction + encodeURIComponent(search01.value)" ...
Ответ написан
Комментировать
@javanub
Добавьте в конец метода
header("location: landing_page.php");
exit;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы