JQueryを使用してPHP $ _SESSION変数を設定する必要があります。ユーザーが画像をクリックすると、その画像に関連付けられた情報をphpのセッション変数として保存します。
これは、phpページまたは関数を呼び出して、その情報をクエリ文字列に追加することで実現できると思います。
何か案は。私はグーグルを通してほとんど助けを見つけていません。
ありがとうマイク
JQueryだけではできません。 Ajax(jQueryで実行可能)とPHPバックエンド。非常に単純なバージョンは次のようになります。
HTML:
<img class="foo" src="img.jpg" />
<img class="foo" src="img2.jpg" />
<img class="foo" src="img3.jpg" />
Javascript:
$("img.foo").onclick(function()
{
// Get the src of the image
var src = $(this).attr("src");
// Send Ajax request to backend.php, with src set as "img" in the POST data
$.post("/backend.php", {"img": src});
});
PHP(backend.php):
<?php
// do any authentication first, then add POST variable to session
$_SESSION['imgsrc'] = $_POST['img'];
?>
PHP関数を別のPHPページに配置し、AJAX呼び出しを使用して変数を設定してみてください。
ここでの多くの回答は、理由ではなく、方法に取り組んでいます。 PHP $ _SESSIONキー/値ペアはサーバーに保存されます。これは、ブラウザに保存されるCookieとは異なります。これが、両方のCookieの値にアクセスできる理由です= PHPとJavaScript。さらに悪いことに、AJAXブラウザーからのリクエストには、Webサイトに設定したCookieは含まれません。したがって、 JavaScriptがセッションID Cookieをプルし、サーバーがその先頭または末尾を作成できるようにするためのすべてのAJAXリクエストに含めます。明るい側面では、PHPセッションは、HTTP GETまたはCookieがHTTPヘッダーとともに送信されない場合はPOST変数にフェイルオーバーするように設計されています。RESTfulWebアプリケーションの原則のいくつかを調べます。セッションハンドラをマングルしようとする代わりに、これらの種類のアプリケーションに共通のデザインパターンを使用します。
探しているのは jQuery Ajax です。そして、リクエストを処理するためにphpページをセットアップするだけです。
また、自分で「phpセッション値セッター」ソリューションを設計しましたが(Luke Dennisのソリューションと同様です。ここでは大したことはありません)、セッション値を設定した後、「別の.phpファイルにジャンプ」しました。わかりました、jqueryコード内でそれをしました...しかし、何かがうまくいきませんでした...
私の問題は簡単なものでした。
-小さな.phpファイルに値を「$ .post」した後、「成功/失敗」の戻り値を待機し、この成功値を読み取った後にジャンプを実行する必要があります。すぐに次の大きな.phpファイルにジャンプした場合、セッション値はphpセッションランタイムエンジンに設定されていない可能性があり、おそらく$ _SESSION ["my_var"]を実行すると「空」と表示されます。宛先.phpファイルから。
私の場合、その状況を修正するために、jQuery $ .postコードを次のように変更しました。
$.post('set_session_value.php', { key: 'keyname', value: 'myvalue'}, function(ret){
if(ret==0){
window.alert("success!");
location.replace("next_page.php");
}
else{
window.alert("error!");
}
});
もちろん、「set_session_value.php」ファイルは「echo「0」を返す必要があります。 'または' echo "1"; '(または必要な成功値)。
ご挨拶。
Lukeの答えに似ていますが、GETを使用します。
このphp-codeをphp-pageに置きます(例)。 getpage.php:
<?php
$_SESSION['size'] = $_GET['size'];
?>
次に、次のようなjQueryスクリプトで呼び出します。
$.get( "/getpage.php?size=1");
フェデリコに同意します。場合によっては、POSTを使用して問題が発生する可能性がありますが、ブラウザに関連する可能性があるかどうかはわかりません。
Javascript部分でonClick()をclick()に変更すると、Firefoxで動作します。
$("img.foo").click(function()
{
// Get the src of the image
var src = $(this).attr("src");
// Send Ajax request to backend.php, with src set as "img" in the POST data
$.post("/backend.php", {"img": src});
});