0

PHP セッション変数を js 関数に渡そうとしていますが、失敗しています。

これが私が試していることです。望ましい最終結果は、ログインしたユーザーの詳細に基づいて正しい JSON ファイルを読み取ることです。

これは可能ですか?

var username = <?=$_SESSION[username]?>;
$('#aboutContent').redactor({ 
    imageGetJson: '/users/'+username+'/gallery/gallery.json'
    }); 
}

私も試しました:

imageGetJson: '/users/<?=$_SESSION[username]?>/gallery/gallery.json'

しかし、まだサイコロはありません。

更新 - 修正済み

問題は、この js が session_start が呼び出されるのと同じファイルではなく、外部ファイルにあることでした。これを使用すると完全に機能します (var ユーザー名を設定する必要はありません):

imageGetJson: '/users/<?=$_SESSION['username']?>/gallery/gallery.json'
4

3 に答える 3

2

ユーザー名がジョンだとしましょう。この線

var username = <?=$_SESSION[username]?>;

次のようにクライアントにエコーされます。

var username = John;

これは明らかに有効な Javascript ではありません。ユーザー名文字列を引用符で囲んでみてください。

var username = '<?=$_SESSION[username]?>';
于 2013-05-02T06:03:39.107 に答える
1

それは事実上不可能です。サーバー側の概念をクライアント側に持ち込むことはできません。

于 2013-05-02T06:02:19.000 に答える
0

変数を適切に引用していません。json_encode()これを処理し、物事を適切にエンコードします。

<?php session_start(); ?>
var username = <?= json_encode($_SESSION['username']) ?>;
于 2013-05-02T06:02:10.080 に答える