0

当用户离开我的网站时,我试图运行一个快速的 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'");         
?>
4

3 回答 3

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'");         
?>
于 2011-03-08T01:00:31.540 回答
0

对脚本/RemoveUserOnDisconnect.php?username=username 进行 ajax 调用。您不能将 PHP 包含在 Javascript 中,Javascript 在浏览器上执行,PHP 在服务器上执行..

于 2011-03-08T00:58:31.707 回答
0

您需要对 PHP 脚本进行 AJAX 调用。您的 javascript 代码只会向执行这些 MySQL 语句的 php 脚本发出后台请求。谷歌上 AJAX。推荐:学习 jQuery 并使用 ajax using $.get()or$.post()

于 2011-03-08T00:58:56.953 回答