2011-03-08 3 views
0

사용자가 내 웹 사이트를 떠날 때 빠른 PHP 스크립트를 실행하려고하고 또한 자바 스크립트에서 PHP로 변수를 전달하지만 PHP 파일을 포함하고 var 전달하는 방법을 잘 모르겠습니다. 하지만 실제로 PHP 스크립트를 실행하지 않습니다. 어떤 아이디어?자바 스크립트에서 PHP 스크립트를 실행 하시겠습니까?

은 (자바 스크립트는 외부 활동 함수의 이름을 나와서, 내가 경고하고 거기에 VAR을 시험 작동 것을 알고있다.)

내 자바 스크립트 :

<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 작업을 통해 찾을 수있는 accesed 폴더에 다른 스크립트가 있기 때문에 아마 문제가되지 않을 것이라고 가정합니다 – brybam

+0

당신은 jQuery 라이브러리를 포함하고 있습니까? – Kyle

+0

오, 그게 jquery라는 걸 알지 못 했어. 그냥 규칙적인 자바 스크립트라고 생각 했어. 나는 스크립트에서 더 높은 위로 을 가지고 있고, 나는 또한 이것을 포함하고있는 스크립트 탭에서 src = "scripts/jquery.js"를 시도했다. 나 일하지 않는다 – brybam

0

스크립트에 아약스 호출/RemoveUserOnDisconnect.php 사용자 이름 = 사용자 이름을 확인합니다. Javascript와 함께 PHP를 포함 할 수 없으며 Javascript가 브라우저에서 실행되고 PHP가 서버에서 실행됩니다.

0

PHP 스크립트에 AJAX 호출을해야합니다. 귀하의 자바 스크립트 코드는 그 MySQL 문을 실행하는 PHP 스크립트에 배경 요청을합니다. 구글 최대 AJAX. 권장 사항 : jQuery 배우기 및 ajax 사용 ($.get() 또는 $.post())

관련 문제