1

私はまだ JSON/AJAX のマスターではないので、これを行う方法がわかりません。

jQuery で使用する $_SESSION['name'] PHP 変数が必要ですが、それにアクセスする方法がわかりません...次のことを考慮してください。

// the 'who is typing' shindig
    $.ajax(
    {
        url: "whos_typing.html",
        cache: false,
        success: function(whos)
        {   
                // here I need to access $_SESSION['name'] and do stuff with it

            $("#soandso").html(whos); //Insert who's typing into the #soandso       
        }
        });
4

6 に答える 6

12

次のように注入する必要があります。

var sessName = '<?php echo $_SESSION['name']?>';

このスクリプトを含むファイルは、php インタープリターによって実行する必要があります (つまり、.php ファイル)。

編集:Raduのポイントを認めて、サニタイズされていないデータを実行する方が安全です:

var sessName = <?php echo json_encode($_SESSION['name']) ?>;
于 2012-08-11T04:04:17.533 に答える
2

$.postサーバーから変数を取得するために使用する必要があります。次のようなものがあります。

 $.post('echoMyVar.php', {post: 1}, function(data){
      myVar = data['myVar'];
      });

これは非常に基本的なことです。最初に がdatanull でないかどうかを確認する必要があります。echoMyVar.php では、基本的に次のものが必要です。

 header('Content: application/json', 1);

 $returnVal = array('myVar', $_SESSION['myVar']);

 echo json_encode($returnVal);

繰り返しますが、これはシェルであり、安全ではなく、エラーを処理しません。

于 2012-08-11T04:09:46.507 に答える
2
var name= "<?php echo $_SESSION['user_name'];?>"

やります。. .

phpはサーバー側のスクリプトであることに注意してください。. .so が優先され、最初に実行され、ブラウザーで実行されるクライアント (Jquery、javacript) に html を吐き出します。. . .

したがって、サーバー側の変数を使用して client と共有できます。. . しかし、その逆ではありません。. .

于 2012-08-11T04:15:07.003 に答える
0

おそらく最も簡単な方法は、JavaScript コードを .php ファイルに含めることです。次に、次のように簡単に実行できます。

var phpVar = <?php echo $_SESSION['name']; ?>

同様の投稿

于 2012-08-11T04:05:06.680 に答える
0

whos_typing.phpのサーバー側:

<?php
//...
header('Content-Type: application/json');
echo json_encode(array(
    'who'=>'Bob',
    'session'=>$_SESSION,
    // Be sure that you're not storing any sensitive data in $_SESSION.
    // Better is to create an array with the data you need on client side:
    // 'session'=>array('user_id'=>$_SESSION['user_id'], /*etc.*/),
));
exit(0);

クライアント側:

// the 'who is typing' shindig
$.ajax({
    url: "whos_typing.php",
    dataType: 'json',
    cache: false,
    success: function(data) {
        var session = data.session,
            who = data.who;
            console.log(session.user_id); // deal with session
        $("#soandso").html(who); //Insert who's typing into the #soandso
    }
});
于 2012-08-11T04:09:47.500 に答える
-1

echoブラウザに送信するときに PHP からセッション変数を取得する必要があります。whos_typing.html は、PHP スクリプトへの単なる URL であると想定しています。

于 2012-08-11T04:02:48.893 に答える