
【サムネイル】に関する知恵袋
【質問】
レンタルサーバについて説明すると、サムネイルの知恵袋を解説すると、php と mysql で mysql_fetch_array とwhileで写真のサムネイルと説明文を表示するデータベースを作りました。一覧表はうまくできたのですが、サムネイルをクリックして行う、サムネイルの知恵袋を理解する上で、拡大表示がうまくいきません。サムネイルと拡大写真は同じjpgデータを使います。検索結果のテーブルにあるサムネイルをクリックすると指定した場所に拡大写真は表示されるのですが、拡大写真は必ず一番最後のデータのものになります。サムネイルは個別に表示されているのですが、photoのデータを繰返しテーブルの外にうまく引き継げません。whileの最後のデータでなく、各テーブルごとのjpgファイル名をwhileの外でも使うにはどうしたらよいでしょうか?div#bigimage:拡大写真を表示するBOXデータベースphoto :写真のファイル名 xxx.jpgsetumei :setumei文 テキスト128文字以内photo0() :写真を大きく表示するJavaScript 実はサムネイルと同じファイルを大きく 表示しているだけ検索結果数 :30<!--サムネイルの表示--><?php while ($data = mysql_fetch_array($r,MYSQL_ASSOC)) {?><!--繰返しテーブル--><table> <tr><td ><a href="#bigimage"><img src="jpeg/<?php print $data["photo"]; ?>" onclick="photo0();" /></a></td></tr> <tr><td><?php print $data["setumei"]; ?></td></tr> </tr></table><?php}?>拡大時(onclick)には、<?php print $data["photo"]; ?>の内容がwhileの最後のデータになってしまいます。レンタルサーバについて説明すると、よろしくお願いします。
【解答】
レンタルサーバであれば、PHPはサーバサイドで動いて、JavaScriptはクライアントサイドで動いているということをきちんと考えていないだけではないかと…onclickで実行されるJavaScriptの中で、PHPの変数を使ったところで、その中身は「HTMLファイルをサーバが吐き出したときの値」で固定されるわけです。というわけで、おっしゃるようなことをやりたいのなら、レンタルサーバを見ると、JavaScriptでやるのではなく、Aタグを使って別途指示された画像を拡大表示するだけのPHPを呼ぶしかないと思いますが。##補足分##構造がわからないですし、まるまる考えるほど暇でもないのでヒントだけ。とりあえず、サムネイル側では<a href="big_image.php?imageno=<?php print($no);?>"><img src="jpeg/<?php print $data["photo"]; ?>" target="_new" /></a>等とします。$noには、画像データのIDなど(DBを検索するときにプライマリキーになるようなもの)を入れておきます。で、サムネイルの知恵袋とは、big_image.phpでは、サムネイルの知恵袋を分解していくと、$_GET['imageno']から画像番号を取得して、DBから該当する番号の画像データを取得して、それを表示するようなソースを書けば良いだけです。