画像が2種類あって、どの画像がクリックされたかを onclick() と $_SESSION[] を使って記録したいと思っているのですが、その方法が分かりません。
以下のスクリプトのようなことをしたいのですが、このスクリプトは動きません。。。($modeには何も値が入りませんでした)。
<a class="1q" id="1a" onclick="<?php $_SESSION['mode']=1 ?>" href="index.php"><img id="image1" alt="Fig1" src="images/fig1.gif"></a>
<a class="2q" id="2a" onclick="<?php $_SESSION['mode']=2 ?>" href="index.php"><img id="image1" alt="Fig2" src="images/fig2.gif"></a>
MODE=<?=$mode?>
よいアイデアを頂けますと大変助かります。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
こんにちは。
まず、サーバサイドでの処理(PHP)とクライアントでの処理(JavaScript)をわけて考えてください。
$_SESSIONに値を入れるには、サーバ側で処理を行う必要があります(ブラウザからのリクエストがあった時)
ということは、index.phpに特定の値(画像の番号や名前)を投げてあげればいいのです。
(ここのindex.phpは下の画像を表示するタグも出力している)
(自分自身にリンクを貼ります)
======================================================================
<?php
session_start();
$mode = $_GET['imgid'];
$_SESSION['mode'] = $mode;
?>
<a href="./index.php?imgid=1"><img src="1.jpg"></a>
<a href="./index.php?imgid=2"><img src="2.jpg"></a>
<a href="./index.php?imgid=3"><img src="3.jpg"></a>
<a href="./index.php?imgid=4"><img src="4.jpg"></a>
======================================================================
(余分なタグは端折ってます)
こうすることで$_SESSION['mode']に選択された画像の番号が入ります。
注意点としては、直接、http://*************/index.php?imgid=10と打ち込まれると
10という存在しない画像の番号も入ってしまいますので、
直接の入力を防ぐ(リファラを参照する)や存在する番号かのチェックが必要かもしれません。
No.3
- 回答日時:
#2です。
2つの画像でしたね。
>注意点としては、直接、http://*************/index.php?imgid=10と打ち込まれると
>10という存在しない画像の番号も入ってしまいますので、
>直接の入力を防ぐ(リファラを参照する)や存在する番号かのチェックが必要かもしれません。
単純にimgidの内容が1であるか2であるかチェックすれば良いですね。
訂正します。
No.1
- 回答日時:
アイデアと言うより最大の欠点は、サーバーサイド実行(php)と、クライアントブラウザ上のjavascript動作(onclick)をごっちゃにしていることでしょう。
画像にリンクを張ってクリックされたら、画像名をqueryに付けた自分にジャンプして、session登録後再表示。
ご回答ありがとうございます。
>画像にリンクを張ってクリックされたら、画像名をqueryに付けた自分にジャンプして、session登録後再表示。
ここのところがよく分からないので、もう少し詳しく教えていただけますと大変助かります。何卒よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- HTML・CSS ブロックエディターで作りつつ、画像を挿入しつつ、画像にスタイルシートのコードを付ける方法はありますか 1 2022/08/23 18:46
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
リダイレクト元のURLの取得方法...
-
image関数でMS Pゴシックを使い...
-
GDで生成したはずの画像が文字...
-
smarty foreach 半角スペース
-
分割して出力する方法
-
文字列を段落で分ける方法を教...
-
TCPDFについて
-
mPDFでのPDF出力がうまくいかな...
-
index.phpに入るには、どうすれ...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
Subversionのリポジトリの削除
-
ImageCreate関数が undefined f...
-
メールフォームのタイトルが文...
-
.phpと.incファイルの違いはな...
-
php 完了画面の送信メールのコ...
-
PHPのif文でその処理を途中で抜...
-
PHPsendmailにて送信元を変更
-
入力フォームの空白や改行を制...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
PHPSpreadsheetによる書き出し...
-
文字列を段落で分ける方法を教...
-
phpにcssを適応させたい...
-
エクスプローラーでフォルダを...
-
TCPDFについて
-
PHPで取得したHTML内のdiv要素...
-
ob_end_clean と ob_clean の違...
-
JSON_UNESCAPED_UNICODEをつけ...
-
リダイレクト元のURLの取得方法...
-
phpexcelにてsubmitボタンを押...
-
phpで不思議な現象が起きるので...
-
変数名の前後に文字列を追加す...
-
PHPで`headers already sent`と...
-
phpでmysqlから画像パスを出力する
-
print出力での文字制限について
-
smarty foreach 半角スペース
-
imgタグでのphpの呼び出しについて
-
PHP/phpMyAdmin/データベースな...
-
【smarty】<A href="">内でのみ...
おすすめ情報