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>

編集:

$_POST上記のコードを使用する場合、phpスクリプトは配列を参照する必要があります。

<?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

scripts / RemoveUserOnDisconnect.php?username=usernameへのajax呼び出しを行います。PHPをJavascriptに含めることはできません。Javascriptはブラウザで実行され、PHPはサーバーで実行されます。

于 2011-03-08T00:58:31.707 に答える
0

PHPスクリプトに対してAJAX呼び出しを行う必要があります。JavaScriptコードは、これらのMySQLステートメントを実行するphpスクリプトにバックグラウンドリクエストを送信するだけです。グーグルアップAJAX。推奨:jQueryを学び、$.get()またはを使用してajaxを使用する$.post()

于 2011-03-08T00:58:56.953 に答える