当用户离开我的网站时,我正在尝试运行一个快速的PHP脚本,并且还将一个变量从我的javascript传递给php,但我不太确定如何包含php文件并将其传递给var。但它实际上并没有运行PHP脚本。任何想法?
(javascript从外部活动函数中获取用户名,我知道这可以用来测试警报及其中的var。)
我的JavaScript:
<script language="javascript" type="text/javascript">
var username = null;
function GetUsername(usernameff)
{
username = usernameff;
}
window.onbeforeunload = function ()
{
if (username != null)
{
<?php include("scripts/RemoveUserOnDisconnect.php?username=username");?>
}
}
</script>
我的RemoveUserOnDisconnect.php文件:
<?php
mysql_connect("mysql.mysql.com", "username", "password");
mysql_select_db("my_db");
mysql_query("DELETE FROM my_table WHERE username = '$username'");
?>
答案 0 :(得分:14)
尝试ajax请求。根据您的PHP脚本,您需要$.post
或$.get
jQuery的:
<script language="javascript" type="text/javascript">
var username = null;
function GetUsername(usernameff){
username = usernameff;
}
window.onbeforeunload = function(){
if (username != null){
$.post('scripts/RemoveUserOnDisconnect.php', {username: username}, function(){
//successful ajax request
}).error(function(){
alert('error... ohh no!');
});
}
}
</script>
编辑:
如果您使用上面的代码,您的php脚本应引用$_POST
数组。
<?php
$username = $_POST['username'];
mysql_connect("mysql.mysql.com", "username", "password");
mysql_select_db("my_db");
mysql_query("DELETE FROM my_table WHERE username = '$username'");
?>
答案 1 :(得分:0)
对脚本进行ajax调用/ RemoveUserOnDisconnect.php?username = username。你不能用PHP包含PHP,在浏览器上执行Javascript,在服务器上执行PHP ..
答案 2 :(得分:0)
您需要对PHP脚本进行AJAX调用。你的javascript代码只会向php脚本发出后台请求,这将执行那些MySQL语句。谷歌AJAX。推荐:学习jQuery并使用$.get()
或$.post()