4

ページが読み込まれると、データベースからセッションにIDが保存されますSession["AppId"] = 1234。ただし、JavaScriptを使用している場合は、データベース呼び出しのAppIdを知っておく必要があります。サーバーコードからJSで利用できるようにするにはどうすればよいですか?スクリプトタグを登録するvar appId = 1234のが道のりでしょうか、それともそのコードは少し熟しすぎているのでしょうか?

bodyタグにカスタム属性を追加する方が理にかなっていますか?data-appid=1234例えば?

私はWebに慣れていないので、すべきこととすべきでないことは必ずしも私には明らかではありません。正しい/最善の方法がある場合は、それを自由に共有してください。

編集:

私が実際に必要とした解決策はでしたHttpContext.Current.Session["AppId"]。静的メソッドがセッション値にアクセスできるとは思わなかったので、Ajax呼び出しを介してWebMethodに渡すには、それをマークアップに格納する必要があると思いました。私が尋ねた質問に答えたので、私は自分がした答えを受け入れました。間違った質問をしました。=)私は新しい覚えています-私に気楽に行ってください!

4

3 に答える 3

4

非表示フィールドを作成するか、グローバル変数を使用できます。

隠しフィールド:

<input type="hidden" value='<%= Session["AppId"] %>'></input>

グローバル変数:

<script type="text/javascript">
window.AppId = '<%= Session["AppId"] %>';
</script>
于 2012-09-05T19:04:49.137 に答える
4

これを行うには多くの方法があります。

  • あなたが投稿したように、data-*属性
  • 非表示のフォームフィールド(ページにフォームがある場合)
  • URLに埋め込む
  • javascriptへの出力を変数に

どちらが最適かについてのコンセンサスはありません。

于 2012-09-05T19:05:16.717 に答える
0

個人的には、セッション値を次のようにグローバル変数に出力します。

<script type="text/javascript">
    <?php
    if(isset($_SESSION["AppId"]))
    {
        echo "var AppId=".$_SESSION["AppId"].";";
    }
    else
    {
        echo "var AppId=null;";
    }
    ?>
</script>

または...

クライアント側のアプリがどのように機能するかはわかりませんが、実際にデータベースクエリを実行するときにAppID値サーバー側を確認できませんでしたか?

このように、AppID値がユーザーに表示されることはなく、ユーザーはjavascriptを介して値を混乱させることはできません。

于 2012-09-05T19:11:13.537 に答える