2011-09-12 11 views
0

ユーザーがHTML SELECTドロップダウンから項目を選択し、ページから移動する前に変数を$ _SESSIONに格納する方法はありますか?私は明白な方法は、同じページに戻って、設定されている変数を確認するフォームを取得することですが、私は誰かが大規模な書き換えなしで何かを変更しようとしている!

I.e.ページをリロードせずにユーザーのSELECTオプションに応じて値が変わるセッション変数を設定できますか?

すべてのご協力をよろしくお願いいたします。

答えて

1

これを行うには、AJAXを使用する必要があります。

1

ページを再読み込みせずに$ _SESSION変数を変更できる唯一の方法は、非同期要求(例:AJAX)を行うことです。

技術的には、クライアント側からセッション変数を変更することはできません。つまり、ページをリロードしたり、別のページに投稿したり、Ajaxを使用してアウト・オブ・バウンド・リクエストを行ったりすることによって、サーバーにリクエストする必要があります。

1

あなたがHTMLからスクリプトにAJAXリクエストを行う必要があります、あなたが持っているjQuery *

$(document).ready(function() 
{ 
    $("#dropdown").change(function() 
    { 

     var link = 'updateSession.php?value_to_update='.$(this).val(); 

     $.ajax({ 
     url: link, 
     type: "GET", 
     dataType: "html", 

     success: function(html) 
     { 
       $('#message').html(html); 
     } 
    }); 
    }); 
}); 

*他のJavaScriptライブラリはHTMLファイルで

0

利用できます使用することができ、このjqueryの/ JavaScriptコード:

$(document).ready(function() { 
     $("#my_select").change(function() { 
      // alert($(this).val()); 
      url = "MyPage.php"; 
      var myData = {}; 
      myData['my_select'] = $(this).val(); 
      jQuery.get(url, myData, function(data) 
      { 
       // console.log(data); 
       // the placeholder where you wanted to show it 
       $("#my_session_select_value").html(data); 
      }); 
     }); 
    }); 

と(セッション値を格納する)あなたのPHPファイルにこのコードを持っている:

session_start(); 
    $_SESSION['my_select'] = $_GET['my_select']; 
    // if you wanted a json encoded result 
    // echo json_encode($_SESSION); 
    // if you wanted a direct value 
    echo $_SESSION['my_select']; 
関連する問題