-1

ページが最初にロードされたとき、セッション変数に値がありません。ユーザーがシステムにログインすると、php 変数に値が設定されますが、onclick 関数 (ページが最初に読み込まれたときに構築される) にはそのパラメーターの値がありません。したがって、ユーザーがボタンをクリックすると、結果としてページにはセッション変数がありません。

問題は、ページの読み込み時に dom が構築されると、その時点で変数に値がないことだと思いますが、ユーザーがログインした後に変数を含むように dom オブジェクトを再構築するにはどうすればよいですか? それともこれは不可能ですか?最近ログインした人のユーザー ID を追加するには、onclick 関数に追加する必要があります。

4

2 に答える 2

2

PHP はユーザーにサイトを送信する前にサイトを生成するため、ログインが AJAX 経由でない場合は、次のようにセッション変数をページ コードに直接配置することを検討できます。

<a class="mybtn" href="#" onclick="javascript:somefunction('<?php echo $_SESSION['myvar'];?>')">CLICK ME</a>

またはjqueryイベント経由:

<script>
 $('.mybtn').click(function(){
  var myvar = '<?php echo $_SESSION['myvar'];?>';
  do_something_with_myvar(myvar);
 });
</script>

ajax を使用している場合は、応答から変数を定義するだけです。

$.post('login.php','login=xxx&pass=yyy',function(res){
   window.myvar = res; // lets say that login function returns that variable
});

その後:

<script>
 $('.mybtn').click(function(){
  do_something_with_myvar(myvar);
 });
</script>
于 2013-07-29T16:45:24.317 に答える
0

AJAX を使用して POST/GET をコミットし、バックエンドで php スクリプトをトリガーして、必要に応じてセッションを更新したり、セッションの値を取得したり、一般的に行っていることをすべて取得したりする必要があります。例...

シンプルな jQuery の投稿:

$.post('my_session_info.php', function(data)
{
   $('#my_element_id').val(data.sess_value);
},'json');

PHP 側:

echo json_encode(array("sess_value"=>$_SESSION['my_session_var']));
于 2013-07-29T16:47:20.237 に答える