ユーザーがHTML SELECTドロップダウンから項目を選択し、ページから移動する前に変数を$ _SESSIONに格納する方法はありますか?私は明白な方法は、同じページに戻って、設定されている変数を確認するフォームを取得することですが、私は誰かが大規模な書き換えなしで何かを変更しようとしている!
I.e.ページをリロードせずにユーザーのSELECTオプションに応じて値が変わるセッション変数を設定できますか?
すべてのご協力をよろしくお願いいたします。
ユーザーがHTML SELECTドロップダウンから項目を選択し、ページから移動する前に変数を$ _SESSIONに格納する方法はありますか?私は明白な方法は、同じページに戻って、設定されている変数を確認するフォームを取得することですが、私は誰かが大規模な書き換えなしで何かを変更しようとしている!
I.e.ページをリロードせずにユーザーのSELECTオプションに応じて値が変わるセッション変数を設定できますか?
すべてのご協力をよろしくお願いいたします。
これはAJAXと呼ばれます。
http://nl.wikipedia.org/wiki/Asynchronous_JavaScript_and_XML
しかし、PHPはサーバーサイドのみであるため、何も純粋なPHPの方法はありません。
だから、あなたはjavaScriptに頼る必要があります。
これを行うには、AJAXを使用する必要があります。
ページを再読み込みせずに$ _SESSION変数を変更できる唯一の方法は、非同期要求(例:AJAX)を行うことです。
技術的には、クライアント側からセッション変数を変更することはできません。つまり、ページをリロードしたり、別のページに投稿したり、Ajaxを使用してアウト・オブ・バウンド・リクエストを行ったりすることによって、サーバーにリクエストする必要があります。
あなたが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ファイルで
利用できます使用することができ、この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'];
ありがとうございました。私はそれが事実だと思った。 – user114671