2011-12-23 15 views
0

私はセッション変数ロードPHPのページがあります、しかしPHPセッション変数をJavascript/jQuery関数に渡すには?

$(document).ready(function() { 

    $(".button").click(function() { 
     var user_id = <? echo $user_id; ?> 
     var dataString = 'user_id=' + user_id; 
     $.ajax({ 
      type: "POST", 
      url: "../add_user.php", 
      data: dataString, 
     }); 
     return false 
    }); 


}); 

:以前

$user_id = $_SESSION['USER_ID']; 

は、私がそのページ内の私のJavascript/jQueryのを含めて、Javascriptの変数を設定する<? echo $user_id; ?>を追加しましたJavascriptを別のページに移動して、PHPページからスクリプトを呼び出したいとします。

<script src="add_user.js" type="text/javascript"></script> 

これを行うと、私はできません長いユーザー<? echo $user_id; ?>、私のPHP変数をJavascript/jQuery関数に渡す最善の方法は何ですか?

+1

を提出外部JSであなたのvaribleを参照することができるようになります。たとえば、ファイル名を 'add_user.php'とし、' 'とします。 –

+0

私はあなたのphpで生成されたページ内でいくつかのグローバルJavaScript変数を使用する必要がありますか、少なくともあなたのsession_id値を保存することができます(そしてjavascriptからアクセスする)隠しフィールドを使用する – andreapier

+0

代わりにhref属性を使用しないでください?完全なURLをリンクに追加して、それを使用してください。 – Ignas

答えて

3
<script> 
var user_id = <?php echo $user_id; ?> 
</script> 
<script src="add_user.js" type="text/javascript"></script> 

add_user.jsファイルにuser_idを使用できるようになりました。また、私はagainst using PHP short tagsに助言します。

+0

一部のサーバー*で機能が不足しているため、使用しない理由はありません。多くのホスティング事業者がPHP 5.1を実行していますが、5.3の機能を使用しないでください。 –

+0

短いタグは適切な設定に依存します。異なるサーバにプロジェクトをデプロイする予定がある場合、どちらの方法でも理解できるので、標準の '<?php'タグを使用するだけでよいでしょう。 「相互運用性を確保するための少々の作業のようだ」 –

8

.jsファイルをPHPスクリプトとして扱うようにWebサーバーを設定すると、.jsファイルからPHPコードを実行できます。あなたのPHPスクリプト・レベルで変数を定義するために

<script type="text/javascript">var user_id = <?php echo json_encode($user_id) ?>;</script> 
<script type="text/javascript" src="add_user.js"></script> 

、その後、いつものように外部の.jsが含まれる:それは受け入れられないかどう

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

$ user_idが常に数値の場合、json_encode()ビットは過剰ですが、私はどこでもJSコードを動的に生成しています。 json_encodeを使用すると、構文的に正しいJSスニペットが挿入されます。

0

反対側でセッションを開始するだけです。 JSデータが故意に壊れていて、悪用される可能性があることを考慮すると、セキュリティはより安全です(セキュリティ)。

セッションを開始した後、そこで値を読み取ります。

もちろん、これは同じ仮想ホスト上のスクリプトで有効です。

2

あなたはまだあなたがJavaScriptファイルをPHPで処理されることができ

<script type="text/javascript"> 
var yourvar = <? echo $user_id; ?>; 
</script> 
<script src="add_user.js" type="text/javascript"></script> 
関連する問題