PHP / JS返回上一页无法正常工作

时间:2017-02-20 15:41:43

标签: javascript php jquery

所以我有一个提交按钮,用于将数据更新到数据库,然后应该返回上一页。我的问题是当用户点击任何其他按钮,然后点击提交按钮...它停留在同一页面上。我怎样才能使它工作?所以它实际上是使用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()">

2 个答案:

答案 0 :(得分:2)

如果您能够修改代码以允许此操作,则可以尝试使用按钮而不是输入:

 <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>

答案 1 :(得分:-1)

您可能正在使用其他按钮向网址添加查询字符串,在这种情况下,您之前的网址不是您期望的网址。 例如,您的网址是helloworld.com,有些按钮正在将#some添加到网址,导致helloworld.com#some ...在这种情况下,之前的网址将是没有#some的helloworld.com ...如果你得到的,将不得不照顾这一点。 我想你可以保存你想要在变量中返回的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>

我只是告诉你如何从JS执行ajax调用...从PHP方面来说,你必须使用params格式将它们保存在数据库中,但它与你现在正在做的几乎相同,我想你知道怎么做。 希望这能澄清问题和解决方案。