Mysql and onbeforeunload
Mysql and onbeforeunload
嗨,当用户离开我的网站上的页面时,我正在尝试删除 mysql 数据库中的一行,但由于某种原因它不起作用。我知道onbeforeunload有效,因为如果我删除那里的所有内容并只放置alert("test");警报显示。这不能做到吗?我的代码在下面,谢谢你的帮助
爪哇语
<script type="text/javascript">
window.onbeforeunload = function(){
var id = document.reset.id.value;
$.ajax({
url: "Resetter.php",
type: "GET",
data: {'id':id},
success: function (response) {
alert(response);
}
});
}
</script>
.PHP
<?PHP
$id = $_GET['id'];
$link = mysql_connect('localhost', 'root', 'root');
mysql_select_db("Colleges");
$delete = mysql_query("DELETE FROM `Table` WHERE `ID`='" . $id . "'");
mysql_close();
die();
?>
由于您要关闭页面,因此您将关闭与服务器的连接,因此它不会等待您的 Ajax 调用完成。这不是onbeforeunload
的工作方式。它仅适用于客户端。另请注意,根据我的经验,onbeforeunload
可能有点挑剔,并且没有考虑到用户可以离开您的页面的所有方式。
要完成您想要的操作,您必须设置某种长轮询。下面是一个在服务器端使用 PHP 的示例: http://blog.perplexedlabs.com/2009/05/04/php-jquery-ajax-javascript-long-polling/
您还可以使用 Node.js 之类的东西来侦听来自页面的连接和断开连接。
您没有从PHP
echo
任何内容,因此不会显示$.ajax
回调函数中的警报... :)
尝试
<?PHP
$id = $_GET['id'];
$link = mysql_connect('localhost', 'root', 'root');
mysql_select_db("Colleges");
$delete = mysql_query("DELETE FROM `Table` WHERE `ID`='" . $id . "'");
mysql_close();
if($delete) {
echo "Done";
} else {
echo "Not Done";
}
?>
相关文章:
- Selenium WebDriver and JavaScript change
- PHP and Javascript functions
- Javascript Return and if/else
- SetTimeout and clearTimeout in Javascript
- lightbox in html 5 and javascript
- TimelineJS and AngularJS
- timeago.js with datatable and PHP
- javascript button ajax and php
- Ajax and Json with Rails
- Combine onload, onresize and onclick
- php布尔值's小写AND大写和数字布尔值'可以接受
- onbeforeunload和asp:Safari和FireFox中的更新面板
- setTimeout and V8
- Jquery post and onclick
- Moment js and IOS
- Rails 3.2 and Paloma gem
- Backbone, TypeScript, and super
- Mysql and onbeforeunload
- AJAX and onbeforeunload event
- onBeforeUnload and node.js