JavaScript / PHP / JS Вернуться к предыдущей странице не работает должным образом

Итак, у меня есть кнопка отправки, которая обновляет данные в БД и затем должна вернуться на предыдущую страницу. Моя проблема здесь в том, что когда пользователь нажимает любую другую кнопку, а затем нажимает кнопку отправки … она остается на той же странице. Как я могу заставить это работать? так что он на самом деле идет на предыдущую страницу с diff url.

  <script type="text/javascript">
function goBack() {
setTimeout("history.go(-1);", 5);
}
</script>

<input type="submit" value="submit" name="submit" id="button" onclick="goBack()">

1

Решение

Если вы можете изменить свой код, чтобы разрешить это, вы можете попробовать использовать кнопку вместо ввода:

 <script type="text/javascript">
function goBack() {
setTimeout("history.go(-1);", 5);
}
</script>

<button type="button" onclick="goBack()">
Go Back
</button>

<button type="button">
Test Button
</button>
2

Другие решения

Возможно, вы добавляете в URL строку запроса с другими кнопками, и в этом случае ваш предыдущий URL не соответствует ожидаемому.
Например, ваш URL-адрес helloworld.com, а какая-то кнопка добавляет #some к URL-адресу, в результате чего helloworld.com # some … В этом случае предыдущий URL-адрес будет helloworld.com без #some … Если это то, что вы получаете, придется позаботиться об этом.
Я думаю, что вы можете сохранить URL, который вы хотите вернуться в переменную, и перенаправить оттуда.

— РЕДАКТИРОВАТЬ —

Основываясь на последних комментариях, я бы посоветовал вам сделать это с AJAX, потому что я думаю, что вы пытаетесь сделать что-то неправильно.
С самого начала вы получаете то, что ожидаете. Кнопка отправки выполняет запрос к URL-адресу формы (если он не определен, это тот же URL-адрес, где вы находитесь). Таким образом, вы находитесь не на той же странице, а страница загружается заново. В этом случае предыдущий URL-адрес совпадает (или кажется, что он совпадает).
С AJAX, в самой простой форме, вы можете сделать что-то вроде этого:

<script>
var submitElement = document.querySelector('input[type="submit"]');

submitElement.addEventListener('click', function(e) {
e.preventDefault();
var ajax = new XMLHttpRequest();

ajax.open( "POST", url, true );
ajax.setRequestHeader("Content-type", "application/x-www-form-   urlencoded");
ajax.send( params );
ajax.onreadystatechange = function() {
if(ajax.readyState == 4 && ajax.status == 200){
setTimeout(function() {
window.history.back();
}, 5);
}
}
});
</script>

Я только показываю вам, как выполнить вызов ajax из JS … Со стороны PHP, вы должны взять параметры формы, чтобы сохранить их в БД, но это почти то же самое, что вы делаете сейчас, и я думаю, вы знаете, как это сделать.
Надеюсь, что это прояснит вам проблему и решение.

-1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector