所以我有一个提交按钮,用于将数据更新到数据库,然后应该返回上一页。我的问题是当用户点击任何其他按钮,然后点击提交按钮...它停留在同一页面上。我怎样才能使它工作?所以它实际上是使用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()">
答案 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格式将它们保存在数据库中,但它与你现在正在做的几乎相同,我想你知道怎么做。 希望这能澄清问题和解决方案。