2012-03-04 16 views
0

$_SESSIONの変数はマイページのスクリプトではアクセスできませんが、その値を表示するのにechoを使用した場合、同じページのPHPコードに存在することを確認しています。スクリプト内でセッション変数にアクセスできない

私はjQueryの中で、私は次のコードでするすべての古典的なPHPの変数を表示することができますが、彼らは$_SESSIONの変数であるとき、それは不可能です:

<?php if(isset($_SESSION['id'])){ 
    echo $_SESSION['id']; // it displays the value 
} ?> 

<script type="text/javascript"> 
$(document).ready(function() { 

$("#some_button").click(function(){ 
    var a = <?php echo $_SESSION['id']; ?>; 
    alert(a); 
});   
}); 
</script> 

私はなぜ正直に理解していない...

+0

ちょっと引用符がありません。 – adeneo

+0

クリックハンドラのために生成されたjavascriptとして「ソースの表示」とは何ですか? –

+1

セッションを開始しましたか? – Tim

答えて

3

これに

var a = <?php echo $_SESSION['id']; ?>; 

あなたはPHP 5.2.0以降を使用している場合は、これを変更します
var a = <?php echo json_encode($_SESSION['id']); ?> 

これは、必要に応じて結果の前後に引用符を置き、必要に応じてJavaScriptのエスケープ文字を配置します。あなたはPHP 5.2.0より前のものを使用したい場合は

は、あなたがこのような何かを行うことができます。

理想的
var a = '<?php echo $_SESSION['id']; ?>' 

、しかし、あなたは/交換機能をエスケープ正規表現および/またはを使用したいと思います$_SESSION['id']には安全な文字しかないことが分かっている場合を除きます。 json_encode()には既に焼いたものがありますので、それが望ましいです。

+0

引用符がありませんでした。ありがとうございます。 – Anon

2

の例では、同じページにある場合、私は知らないが、私はあなたが「再その文字列の場合ので、あなたは、セッション変数に

+1

しかし彼はここでそれを言っています----> echo $ _SESSION ['id']; //値が表示されます。 – B4NZ41

+1

@ B4NZ41「私は例が同じページにあるかどうかわかりません」と言った: – dotoree

+0

Ops!そうです、とにかくそれは問題ではありません。 jsと何か.. – B4NZ41

1

を使用することはできませんsession_start()が欠落している疑いがある:

var a= "<?php echo $_SESSION['id']; ?>"; 
1

それは、私に働いています: 準備ができて、以下のコードをテストします。これはあなたのコードと非常によく似ていますが、jquery APIを呼び出すことを忘れてしまったと思います。

<?php> 
session_start(); 
$_SESSION['id'] = 1; 

if (isset($_SESSION['id'])) 
{ 
    echo $_SESSION['id']; 
    echo json_encode($_SESSION['id']); 
} 
?> 

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() 
{ 
    $("#some_button").click(function(){ 
      var a = "Result: "+ <?php echo json_encode($_SESSION['id']); ?>; 
     //var a="<?php echo $_SESSION['id']; ?>"; 
      alert(a); 
    });  
}); 
</script> 

<form method="post" name="form" action="#"> 
    <input type="submit" id="some_button" value="Clique" /> 
</form> 
関連する問題