• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP セッションの受け渡しと取得)

PHPセッションの受け渡しと取得

このQ&Aのポイント
  • サムネイル画像の受け渡しと取得方法について教えてください。
  • セッションを使用して画像のname値を保持しながら次のページに渡す方法を教えてください。
  • PHPでセッションを使って画像の受け渡しと取得を行いたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.3

ボタンを複数配置するなら、どのボタンを押されたのかを引き渡さないといけません。 表示するときの処理 $arr = array( array('no'=>'1', 'img'=>'1.jpg', 'thumb'=>'1S.jpg'), array('no'=>'2', 'img'=>'2.jpg', 'thumb'=>'2S.jpg'), array('no'=>'3', 'img'=>'3.jpg', 'thumb'=>'3S.jpg'), ); foreach ($arr as $item) { $no = $item['no']; $img = $item['img']; $thumb = $item['thumb']; printf('<button type="button" onclick="window.open('img.php?%s','main');" name="name%s" value="%s"><img src="%s" width="150" height="110"></button>', $no, $no, $img, $thumb); $_SESSION[$no] = $item['img']; } これで、 <button type="button" onclick="window.open('img.php?1','main');" name="name1" value="1.jpg"><img src="1S.jpg" width="150" height="110"></button> <button type="button" onclick="window.open('img.php?2','main');" name="name2" value="2.jpg"><img src="2S.jpg" width="150" height="110"></button> <button type="button" onclick="window.open('img.php?3','main');" name="name3" value="3.jpg"><img src="3S.jpg" width="150" height="110"></button> のようなhtmlが返せます。で、onclickで呼び出されるスクリプトは img.php <?php session_start(); $no = $_SERVER['QUERY_STRING]; $img = $_SESSION[$no]; printf('<img src="%s" />', $img); のようにすればいいんじゃないかと。 #まぁ普通はjQuery(lightbox)でやりますけどね。 #なぜこんな面倒なことをするのかが謎ですww

その他の回答 (2)

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

> 複数写真が存在する中からの最後にクリックした値だけを取得するにはどうすれば良いでしょうか? クリックはクライアントサイドのイベントなので、サーバサイドで動くPHPでは取得できません。 JavaScriptを使ってwindow.openの際のURLにGETメソッドでくっ付けて渡すか、Cookieにセットしておいて取り出すといった方法を用いた方がいいかもしれませんね。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

$name1 = '写真1'; $_SESSION[ 'name1' ] = $name1; でセッション変数に値を保存できます。 表示箇所には <?php echo $name1; ?> で表示できますし、セッション変数からの取り出しは $name1 = isset($_SESSION['name1']) ? $_SESSION['name1'] : ''; で取り出せます。 今、file1でやっている事と同じ事をすればいいのです。

5620246
質問者

補足

さっそくの回答をありがとうございます。 この記述で試してみましたが、$name1 = '写真1';を入れることにより、下記のボタンをクリックしなくても表示されるようになったのですが、複数写真が存在する中からの最後にクリックした値だけを取得するにはどうすれば良いでしょうか?ご説明が足りなくてすみません。 <button type="button" onclick="window.open('1.html','main');" name="写真1" value="<?php echo $name1; ?>"><img src="1S.jpg" width="150" height="110"></button> 例) <button type="button" onclick="window.open('1.html','main');" name="写真1" value="<?php echo $name1; ?>"><img src="1S.jpg" width="150" height="110"></button> <button type="button" onclick="window.open('2.html','main');" name="写真2" value="<?php echo $name2; ?>"><img src="1S.jpg" width="150" height="110"></button> <button type="button" onclick="window.open('3.html','main');" name="写真3" value="<?php echo $name3; ?>"><img src="1S.jpg" width="150" height="110"></button>