2011-03-08 30 views
0

我试图运行一个快速的PHP脚本,当用户离开我的网站,并通过一个变量从我的JavaScript到PHP,但我不太清楚如何包括PHP文件并将其传递给变种。但它并没有真正运行php脚本。有任何想法吗?在javascript中执行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'");   
?> 

回答

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'");   
?> 
+0

非常感谢这些例子!我给了它一个镜头,并确切地发布了你的内容。没有运气,但有什么想法?我试图提醒(“它工作”);取代你的评论,并且警报不会出现。我是否应该像查询前面的返回来让它触发该函数或什么?看它是否被执行?另外,我不知道这是否可以,但我只允许对脚本文件夹执行权限。但我假设可能不是问题,因为我有文件夹中的其他脚本正在通过cron作业找到 – brybam 2011-03-08 01:13:37

+0

你是否包括jQuery库? – Kyle 2011-03-08 01:15:45

+0

哦,我不知道这是jQuery,我认为这只是正常的JavaScript。我在脚本中有更高的脚本,我也在包含脚本的脚本标签中尝试过src =“scripts/jquery.js”,它仍然存在不工作 – brybam 2011-03-08 01:19:02

0

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

0

您需要对PHP脚本进行AJAX调用。你的javascript代码只会向PHP脚本发出一个后台请求,它将执行这些MySQL语句。 Google up AJAX。推荐:学习jQuery并使用ajax使用$.get()$.post()