• 締切済み

このurlの仕組みについて

名刺の注文フォームを作っています。 下記のurlのように名刺のデザイン一覧がありサンプル画像を クリックするとクリックした画像が注文フォームに表示され 自動でサンプルナンバーをフォームのサンプルナンバー表記する 箇所に表示させたいと思っているのですが具体的な方法が わかりません。 http://www.meisiya.net/biz_impact/list_bi_1.html 注文フォームまでは完成し送受信も問題ないのですが現状は セレクトボックスからサンプルナンバーを選んでもらうというもので サンプルを確認するためにページを2ページ開くか戻ってサンプルを 確認しなければならないのでどうも手間に感じてしまいます。 参考urlをみると画像のみクリックした画像を表示させるものの ヘッダーやフッターなどは全て同じものを読込んでいるように見え 画像表示の部分だけifやelseで分岐しているのかな・・・? と初心者ながらも思う事はできるのですが具体的な方法が わからずです。>_< 初心者なものでできるだけ具体的に教えて頂けますと非常に幸いです。 意味のわかりづらい文章になってしまいましたがご不明な箇所が ありましたら随時補足致します。 詳しい方おりましたら是非ご教授お願い致します。

みんなの回答

  • golive001
  • ベストアンサー率54% (20/37)
回答No.3

https://www.meisiya.net/ord_bi.x?dsi_no=bi_76 ソースを参考にしてみて下さい。 実はこのソースでは、GETで受け取った値を、自分自身に代入して、そのまま確認画面へPOSTしているんです。 どうやっているかというと <input name="dsi_no" type="hidden" value="bi_76"> というHTMLを吐き出しているのです。 より具体的には、 <?php $no = $_GET['dsi_no']; //下記ヒアドキュメント(この記述以外でも、代入出来さえすればよいです。) print<<<FORM <html> <form action="https://www.meisiya.net/ord_fix.x" method="post" name=fm_ord> (中略) <input name="dsi_no" type="hidden" value="{$no}"> </form> </html> FORM; ?> hidden とは隠す(非表示)という意味ですので、form内には表示されません。しかし、formタグ内に存在するので他の値同様にPOSTされる訳です。 hiddenはよく使いますから、覚えておいて損はないですよ!

noname#65793
質問者

補足

お返事ありがとうございます。 やはりURLの?no=111が消えてしまいます。 フォームはHTML_QuickFormで生成しておりページの表示はsmartyを 使っているのですがそれが原因でしょうか? メインページで表示させるtplファイルにフォーム表示するphpを 読込みしており若干複雑な感じになっています。 ---php---(メインページで表示するtplファイルに記述) $image = $_GET['no']; print<<<IMG <img src="img/common/card_img/{$image}.gif"> IMG; $no = $_GET['no']; print<<<FORM <input name="no" type="hidden" value="{$no}"> FORM; ---html出力--- <form action="/order.php" method="post" name="form" id="form"> <img src="img/common/card_img/111.gif"> <input name="no" type="hidden" value="111"> ~省略~ </form> HTML_QuickFormの生成するphpに $form = new HTML_QuickForm('form'); とするとhtmlの出力は <form action="/order.php" method="post" name="form" id="form"> となるので $form = new HTML_QuickForm('form', 'post', 'order.php?no111'); と試しに変更し <form action="/order.php?no=111" method="post" name="form" id="form"> と出力させるように静的に変更したところ確認画面に移動してもurlの?no=111は消えませんでした。 理解力が足りなく大変申し訳ないのですがお力添え頂けますと幸いです。

  • golive001
  • ベストアンサー率54% (20/37)
回答No.2

おそらくなんですが・・・ (1) http://www.meisiya.net/biz_impact/list_bi_1.html 内で <a href="./ord_bi.x?dsi_no=bi_76">bi_76</a> とリンクを貼る。 (2) ord_bi.xファイルに GETして連想配列array([dsi_no] => "bi_76")を渡す (3) /biz_impact/large/ ディレクトリ内部でbi_76と同じ名前の画像ファイル(.jpg)を表示する。(名前が固定してある) $image_url = "/biz_impact/large".$_GET['dsi_no'].".jpg"; <html> <?php print $image;?> </html> って流れだけかと思いますよ。 実際には、GETした内容がが空かどうかのチェックしなければいけませんが、 ほぼ上記の内容で処理していると思います。 GETのを削ってアクセスしてみると、画像が表示されず・・・large/.jpgのように出力されていますからほぼ間違いないと思います・・・ 自信ないですが(汗)参考までに

noname#65793
質問者

補足

お返事ありがとうございます! おかげさまで何とか形にする事まではできました。 問題があるのですが フォームの生成はPEARのHTML_QuickFormを使っています。 同一のURLで入力画面→確認画面→送信完了画面という流れです。 order.phpが注文フォームのページとすると サンプル画像に<a href="order.php?no=111">画像</a>とすると order.php?no=111のページに移動します。 ここまでは問題ないのですがフォームの入力内容確認画面に 移動するとURLがorder.phpとなってしまい?no=111が消えてしまいます。 form action="order.php?no=111"・・・となっていない事が原因かとも 思い 質問時に参考にしたURLのhtmlをみると/ord_bi.x?dsi_no=bi_84の場合でも form action="https://www.meisiya.net/ord_fix.x" となっており?以降がついておりませんでした。 (入力画面のみの構成なのかもしれませんが) GETした値を最後まで維持する方法?なんと表現したらいいかわからないのですが なにかわかりますでしょうか?

  • mamyutyan
  • ベストアンサー率55% (22/40)
回答No.1

>下記のurlのように名刺のデザイン一覧がありサンプル画像を >クリックするとクリックした画像が注文フォームに表示され クリックした後に表示されたurlをよく見てみてください. (GETやPOSTがわかったら,できると思いますが.)

noname#65793
質問者

補足

お返事ありがとうございます。 >(GETやPOSTがわかったら,できると思いますが.) 具体的なソースがわからないため質問させて頂いております。 hoge.php?id=hogeを見るとGETを使っているのかな?と思うのですが 初心者ながらその程度の事しかわかりません。

関連するQ&A

専門家に質問してみよう