• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:foreachで回してますが…。)

画像表示プログラムの仕組みと配列の組み換え方法について

このQ&Aのポイント
  • PHPを使用して画像表示プログラムを作成していますが、配列の組み換え方法がわかりません。
  • 画像は条件に基づいて取得し、1枚を大きく表示し、残りの29枚はフォトスライダーで表示する形式です。
  • 同じページでフォトスライダーの画像をクリックすると、大きな画像とURLが変わり、フォトスライダーの画像も変わるようにしたいです。

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

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

参考サイトのような形でJavascriptを使用するのでしたら、PHPからJavascriptを吐き出せばいいと思います。 画面遷移してもいいならばJavascriptを使用しないでもできます。 問題がざっくりしすぎててなんと回答していいかわかりません。 何をしたいか、なにができないか、ということを明確にすればアドバイスができると思います。 例えば >枚数にすると数千枚表示する形になります。 全部を一度に表示するか? >その中から30枚バラバラで画像を取る型になっています。 バラバラ?ここの抽出まではおわってるのかな? >スライダーの画像をも変えて延々とクリックできるようにしたいのです。 0-29在ったとして、29の隣が0になるように循環するような感じ? 無限循環はJavascriptなどを使用しないとだめですね。 PHPのみでやるのでしたら、フレーム分けして、上部A画面、下部B画面として、A画面に大きな画像1枚入る、B画面にサムネイルで小さな画像が30枚入る。 B画面のサムネイルをクリックするとA画面にクリックした画像が表示される。 だけならばすぐにできると思います。 B画面も更新してクリックした画像を中央に持ってくる。とかになるとやっぱりJavascriptなどでA画面とB画面を両方更新する必要があります。もしくは全画面更新してフレームから作り直すとか。

sscommon
質問者

お礼

回答ありがとうございます。 一度にうん千枚表示する形ではないです。 その中から、ある条件に紐づいたものを拾って さらにその中から30枚出してます。 30枚抽出する所、表示させる所までは終わっています。 一応、foreachで回して、配列作った段階でsessionを作成して 各配列の全てのデータを保持できました。 あと写真に大してforeachで回してる時に{$smarty.foreach.foo.index} とかいうもので各写真にget形式のflagを立てて、 取りあえずは押した画像が点字0の大画像には行くように なったのですが…残りの画像表示がおかしいままです…。 やりたいことは二次元配列の状態でデータを全て保持しておきたい、 また、一度出した30枚の画像をクリックしても 配列の内容は変えずに、押した画像(配列の点字)を起点に 配列の順番を変えておきたいってことです。 なので延々とスライダー箇所でクリックしても ずっとループさせておきたいってことですね。 画像単位で点字0のURL (例えば、http://hoge/photo/000001.htmlhttp://hoge/photo/0000002.html…)などで 表示させたいのでj-queryとかjavascriptでやるってことは 考えてなかったんですが、やっぱりjavascriptが無難なんですかね。 PHPだとリロードかかってしまってなんか見辛いですしね…。

その他の回答 (1)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

見た目をよくしたい!と言うのならばフラッシュなりJavascriptなりの導入をしたほうがよいでしょう。 使いたくないのでしたらやはりフレームがベターな気がします。 たとえば、 http://flash-bucks.com/flash/album/a11/index.html 見たいな形でフラッシュを使う手もあると思います。 Javascriptとかだと http://weblibrary.s224.xrea.com/weblog/webdesign/javascript_high.html http://ascii.jp/elem/000/000/189/189100/ http://ascii.jp/elem/000/000/187/187279/ とか。

sscommon
質問者

お礼

■お返事かなり遅くなり申し訳ございません。 回答ありがとうございます。 Javascriptの導入はできますが、フラッシュはどうも…。 一応、JSの導入は今試みてる状態です。 回答ありがとうございました。

関連するQ&A