プルダウンから遷移先URLにジャンルを追加したいがうまくいかない

このQ&Aのポイント
  • プルダウンから遷移先のURLにジャンルを追加する方法について質問です。
  • 現在、input type='hidden'でジャンル名を送信していますが、文字がエンコードされてしまう状態です。
  • 最終的に日本語でジャンル名を取得したい場合、どのようにすればよいでしょうか?
回答を見る
  • ベストアンサー

プルダウンから、遷移先のurlに、&genrename=○○と追加付与

プルダウンから、遷移先のurlに、&genrename=○○と追加付与したいのですが、うまくいきません。 ▽現状 <form action="search.php" method="get"> キーワード:<input type="text" name="keyword" size="40"> <select id="genreid" name="genreid"> <option value="0">すべての商品</option> <?php foreach ($hits as $hit) { ?> <option value="<?php echo ($hit->genreId); ?>"> <?php echo ($hit->genreName); ?> </option> <?php } ?> <input type="submit" value="検索"> </select> </form> ▽新たに追加して飛ばしたい内容 <?php echo ($hit->genreName); ?>の部分 ▽試したこと <input type="hidden" name="genrename" value="<?php ($hit->genreName); ?>"> とやると、&genrename=○○と追加付与されたのですが、文字がエンコードされたような状態になりました。 そこで、お伺いしたいのですが、 ・プルダウンから、遷移先のurlに、&genrename=○○と追加付与する場合は、input type="hidden"でよいのでしょうか?(option valueの値送信は必要なので、それに追加して、という意味です) ・input type="hidden"で送信すると、勝手に何かに変換されるのでしょうか? ・最終的に、$genrename=$_GET["genrename"];という形で取り込みたいのですが、きちんと日本語表示させるにはどうしたらよいのでしょうか?

  • re999
  • お礼率61% (476/777)
  • PHP
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • aa_akiya
  • ベストアンサー率100% (21/21)
回答No.1

> ・プルダウンから、遷移先のurlに、&genrename=○○と追加付与する場合は、input type="hidden"でよいのでしょうか?(option valueの値送信は必要なので、それに追加して、という意味です) よいです。 > ・input type="hidden"で送信すると、勝手に何かに変換されるのでしょうか? > ・最終的に、$genrename=$_GET["genrename"];という形で取り込みたいのですが、きちんと日本語表示させるにはどうしたらよいのでしょうか? html側の文字コードと、サーバ側の文字コードが異なる場合は文字化けします。 mb_convert_encoding関数で文字コードを変えてやる必要があります。 文字コードが同じであれば送信時にurlエンコードが行われていると思われます。 サーバ側で勝手に元通りに変換してくれるはずですが、 もしだめならurldecode関数を使用すれば元通りになります。 そもそもgenrenameの情報をサーバ側に持っているのであれば、 わざわざそれをフォームから飛ばす必要は無いと思います。 例えばgenreidをキーとして下のような配列を作り、 (genrenameがhtmlに出力されているということは、 既にそのようなデータがあるのかもしれませんが) $genrenameList = array(1 => "ジャンル1", 2 => "ジャンル2" …); $genrename = $genrenameList[$_GET["genreid"]]; とすれば余分にフォームの値を飛ばす必要がなくなりますので。

re999
質問者

お礼

素早い回答ありがとうございました。 おかげでうまくいきました!

関連するQ&A

  • input type="hidden"で送る値を、セレクトした内容に応

    input type="hidden"で送る値を、セレクトした内容に応じて動的に変えるにはどうしたらよいでしょうか? ▽現状 <form action="search.php" method="get"> キーワード:<input type="text" name="keyword"> <select name="genreid"> <option value="0">すべての商品</option> <?php foreach ($genres as $hit) { ?> <option value="<?php echo ($hit->genreId); ?>"> <?php echo ($hit->genreName); ?> </option> <?php } ?> </select> <input type="hidden" name="genrename" value="<?php echo ($genres->genreName); ?>"> ▽問題点 この書き方だと、<option value="0">を選択した際、「すべての商品」という文字列が送れません。 <option value="0">を選択した際は「すべての商品」を、 それ以外を選択した場合は、<?php echo ($genres->genreName); ?>を送りたいのですが、どう書けばよいでしょうか? 最終的には、遷移先で、$genrename=$_GET["genrename"];で利用する予定です。 ▽その他 http://okwave.jp/qa/q6215844.htmlで回答いただいた内容で、解決したつもりだったのですが、新たな疑問が出てきたので、質問しました。上記でアドバイスいただいた、フォームを使わないやり方については、データをAPIから取得していること等もあり、どうやって処理してよいか分からないため、できればこのフォームでやりたいと考えてます…。

    • ベストアンサー
    • PHP
  • 年月日のプルダウンメニューで教えてください。

    php初心者です。 セレクトメニューで悩んでいます。 以下のようなフォームを作っています。 プルダウンメニューで2007年1月1日を選んだ時 結果を20070101にし、SELECTDATEのaaaに持たせたいのですがどうすればいいのかわかりません。 どなたか教えてください。 <form name="etc" action="etc"> <?php echo "<select name=\"YEAR\">"; for ($i = 0; $i < 2; $i++) { echo "<option>".date("Y", strtotime("+$i year")); } echo "</select>年"; echo "<select name=\"MONTH\">"; (中略) echo "<select name=\"DAY\">"; (中略) ?> <input type="hidden" name="SELECTDATE" value="aaa" /> </form>

    • 締切済み
    • PHP
  • プルダウンを選択していないときは、初期値(selected)の値を、選

    プルダウンを選択していないときは、初期値(selected)の値を、選択したときは選択値を、hiddenで渡したい。 ▽プルダウン例 <form> <select> <option value="0" selected>A</option> <option value="4">B</option> <option value="6">C</option> </select> </form> ↑上で選択した値(A or B or C)値を、↓下のvalue=「"hoge"」に渡したいです。 ※選択肢は3つだけではなくて、たくさんあります。 ▽input例 <input name="category_name" value="hoge" type="hidden"> ※formとかselectにid振っても構いません。 ※javascriptでやりたいです。

  • hidden属性だけのフォーム

    hidden属性だけのフォームというのはちゃんと動作しますか? 自分のソースでは動作せず、送り先のPHPスクリプトでvar_dump()すると、$_POST['']の中身が NULL になってました。送信やリセットボタンを作らずに送信できるとすれば、どんな ソースになりますか? <?php echo '<form name="form1" method="POST" action="../../disp_access.php">'; echo '<input type="hidden" name="from" value="1">'; // どのページから飛んできたかを示す echo '<input type="hidden" name="browser" value="'.$referer.'">'; echo '<input type="hidden" name="ip" value="'.$ip.'">'; echo '</form>'; ?>

    • ベストアンサー
    • HTML
  • <input>の選択肢をプルダウンメニューから受け取り、hiddenで

    <input>の選択肢をプルダウンメニューから受け取り、hiddenで渡したいのですが、どうすればよいでしょうか? ▽プルダウン例 <FORM> <SELECT> <OPTION SELECTED>SELECT</OPTION> <OPTION VALUE="1">A</OPTION> <OPTION VALUE="2">B</OPTION> <OPTION VALUE="3">C</OPTION> </SELECT> </FORM> ↑上で選択した値(A or B or C)値を、↓下のvalue=「"hoge"」に渡したいです。 ※選択肢は3つだけではなくて、たくさんあります。 ▽input例 <input name="hosted_button_id" value="hoge" type="hidden"> http://okwave.jp/qa/q6016233.htmlの質問内容が知りたいことに近かったのですが、value値ではなくて、選択した内容そのものをhiddenへ渡す方法を教えてください。

  • ラジオボタンでうまくするには・・・・

    初めまして。 現在下記のプルダウン形式で、一つの価格が同じなので問題なく動くのですが <FORM action="cart/sys/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=hidden value=2000 name=tan> <SELECT name=sur> <OPTION value="" selected>購入数量</OPTION> <OPTION value=1>1</OPTION> <OPTION value=2>2</OPTION> <OPTION value=3>3</OPTION> <OPTION value=4>4</OPTION> <OPTION value=5>5</SELECT> <INPUT type=submit value=カートに入れる> </FORM><BR> <FORM action="・・・/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=hidden value=2000 name=tan> </FORM> 同じ商品で1・2・3・4・5のそれぞれに単価が変わる設定をしたいのですが、うまくいく方法が見つからないです。 ラジオボタン形式で作ってみたものの・・・・ <FORM action="・・・/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=submit value=カートに入れる> </FORM> <FORM> <INPUT type="radio" name="name1" value="2000">1袋<BR> <INPUT type="radio" name="name1" value="3900">2袋<BR> <INPUT type="radio" name="name1" value="5800">3袋<BR> <INPUT type="radio" name="name1" value="7500">4袋<BR> <INPUT type="radio" name="name1" value="8500">5袋</FORM> としてみましたがうまくいきません。 なにか方法ございましたら、ご教授いただければと思います。

    • ベストアンサー
    • HTML
  • FORMで送信ボタンと戻るボタンを2つつけてそれぞれ遷移先を変えたい

       以下のような画面を作りたいのですが↓ -------------------------------------------------------------------------------- ● a.php (ユーザ情報入力画面) ※フォームに入力する画面    <FORM method="POST" action="b.php">   <INPUT type="text" name="mail">   <INPUT type="submit" name="submit" value="確認">  </FORM> ● b.php (ユーザ情報入力確認画面)※フォームに入力された値を表示する画面  <FORM method="POST" action="c.php">   <!-- ここには、フォームに入力された値を表示する -->   <INPUT type="submit" name="submit" value="登録"> // c.php に遷移する   <INPUT type="submit" name="submit" value="戻る"> // a.php に戻る  </FORM> ● c.php (完了画面) -------------------------------------------------------------------------------- b.php について質問なのですが、 b.phpにおいて、登録ボタンと戻るボタンを2つつけて、 それぞれ遷移先を変えたいのですが、どうすればいいんでしょうか・・・? <FORM method="POST" action="c.php">と書いてしまうと、 戻るボタンを押しても戻らずに、c.phpに遷移してしまいますよね?? こういう場合ってJavaScriptとかで遷移先を指定するんですか・・? もしそうでしたら、JavaScriptがよくわからないので できればサンプルコード示していただけると助かります・・・。   

  • postのタイムラグ

    以下のソースでPOSTの値が取れないときがあるので困っています。 具体的にはページを表示してから30秒程度待ってからの クリックじゃないとPOSTの値が取れません。 GETの場合はページ表示後すぐにボタンをクリックしても大丈夫でした。 原因が分からず途方に暮れています。 お知恵をお貸しください。 PHP Version 5.2.3 <?php $P_data = $_POST["pg"]; print("POST=>".$P_data."<BR>"); $G_data = $_GET["pg"]; print("GET=>".$G_data."<BR>"); print <<< DOC_END <html> <head> </head> <body> DOC_END; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=1>"; echo"<input type=submit value=あ>"; echo"</form>"; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=2>"; echo"<input type=submit value=い>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=3>"; echo"<input type=submit value=う>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=4>"; echo"<input type=submit value=え>"; echo"</form>"; print <<< END </body> </html> END; ?>

    • 締切済み
    • PHP
  • プルダウンでaction等を変更するには

    下記のような検索フォームがあるのですが、これをプルダウンで 選択させるにはどうしたらいいのでしょうか? 1行目のURLと、3行目の11111が変わる部分です。 さらにプルダウンには「A内を」「B内を」と入れたいのです。 よろしくお願いいたします。 <form action="http://hogehoge.hoge.net/pages/user/search/"> <input value="" name="keyword" type="text" size="20" /> <input value="11111" name="blog_id" type="hidden" /> <input value="検索" type="submit" class="input-submit" /> </form>

  • チェックボックスのvalueを連結してURLに追加

    <form method="get" action="<?php = $_SERVER['PHP_SELF']; ?>"> <input type="checkbox" name="c" value="001" /> <input type="checkbox" name="c" value="002" /> <input type="checkbox" name="c" value="003" /> <input type="checkbox" name="c" value="004" /> <input type="checkbox" name="c" value="005" /> <input type="submit" value="送信" /> </form> submitするとURLに ?c=001&c=002&c=003… が追加されます。 その形ではなく、c=001002003… と連結してURLに追加するにはどうしたら良いですか?

    • 締切済み
    • PHP

専門家に質問してみよう