在重定向之前写入数据库
Write into database before redirecting
有一个按钮,当它被点击(html onclick)时,它会重定向到另一个页面。在javascript中有一个函数,当单击此按钮时,它将一些新值写入数据库表。我的问题是:重定向发生在数据写入数据库之前,因此在新页面上我仍然具有旧值。有没有一种简单的方法来反转这些步骤(重定向,写入数据库)?感谢您的建议
只需将重定向移动到 ajax 调用的回调中,假设你有
<a href="#" id="savedata">Save data</a>
<script type="text/javascript">
$(document).ready(function() {
$("#savedata").click(function() {
$.post('/savemydata/', { mydata: 'data' }, function(data) {
window.location.href = '/newpage/'
});
return false;
});
});
</script>
如果按钮确实提交了表单,那么您可能希望隐藏该按钮,然后在帖子发布后只需添加以下内容即可触发它:
$("#buttonID").trigger('click');
使用 ajax
写入数据,然后在 ajax 的回调中加入重定向。这将确保在将信息写入数据库之前不会发生重定向。查看一些代码以做出更好的答案会有所帮助。此外,如果你不熟悉 ajax,这很可能最好用 jQuery 来完成。
将重定向到新页面的代码移动到 ajax 保存请求的回调中。
像这样:
$.post('/savemydata/', { my: 'data' }, function(data) {
//the Ajax post has been completed successfully, so now we redirect
window.location.href = '/newpage/'
});
这取决于您写入数据库的方式。但是,在加载新页面时将数据传输到服务器的常用和推荐方法是使用 URL 参数。如果您使用类似的东西
<form action="/next.php" method="POST">
<input type="hidden" name="data" value="values" />
<button type="submit" value="Next Page" />
</form>
或
<a href="/next.php?data=values">Next Page</a>
// also simply usable with
window.location = "/next.php?data=values";
你可以肯定
- 数据到达服务器,
- 可以在之前处理(写入数据库)
- 返回请求的页面。
您也可以使用饼干。只需将您的数据值写入 document.cookie
,它们就会以与请求新页面相同的请求传输到服务器。
相关文章:
- 通过javascript重定向html传递php变量
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 使用angular重定向到html页面
- 如何在chrome扩展中重定向到html页面
- 无法从jquery Mobile导航栏重定向到另一个页面
- 在数据库中插入数据后,无法重定向到 HTML 页面
- 将表单数据插入数据库后无法重定向到 html 页面
- 在重定向之前写入数据库
- 如何在记录插入Mysql数据库后重定向到新的Html页面
- 将详细信息发送到数据库后,正在将表单提交重定向到URL
- 如何正确重定向,重定向时,查询不会将值输入数据库
- 使用数据库中的数据重定向到新页面
- 重定向到数据库表值
- 在数据库中保存数据而不需要在php中重定向
- 如何捕获一个错误,并在数据库中保存错误细节和重定向到自定义错误页面在经典asp
- 重定向帖子没有数据库
- 从服务器上的数据库重定向到本地进行测试
- 我已经在数据库中插入了信息,并对其进行了验证.但如果我单击插入,它将重定向到另一个页面
- Javascript:如果稍后重定向到另一个页面,则无法将数据添加到数据库
- 如何从数据库中获取图像URL,以便当有人单击图像时,他/她可以重定向到该URL