• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:検索時の選択内容を保持する方法 2)

検索時の選択内容を保持する方法

このQ&Aのポイント
  • 検索時の選択内容を保持する方法について、PHP検索フォームでの実装に関して質問をさせていただきました。
  • 今回の質問では、チェックボックスやラジオボタン、セレクトボックスなど検索フォームでよく使用される要素を利用し、選択内容を保持する方法を解説しています。
  • 特に、複数選択のチェックボックスを実装する方法についてのアドバイスを求めています。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>リセットボタンはjavascriptにされてますか?? 「リセット」というのは・・・ 「初期値にもどす」ことと「データが空の状態にする」 の二重の意味をもちます。 前者であれば <input type="reset" value="reset"> でやるのが正しいでしょう。 後者であれば考え方がいろいろありますが私の場合は <input type="submit" value="reset" name="s"> のように名前付きのsubmitをして <?PHP if($_REQUEST["s"]=="reset") header("Location:{$_SERVER['SCRIPT_NAME']}"); ?> のようにしてパラメータなしで自分をよみなおします。 (もちろん場合によってはjavascriptでやるのも有効でしょうけど) >"0"が頭にくると動作しない うーん・・・ <option value="01"{$selected["month_kara"]["01"]}>01</option> とクォーテーションでくくればよくないですか?

rabbit-kimura
質問者

お礼

ありがとうございます!! 今回のリセットは、「データが空の状態にする」という状態が正しいです!! 前者の場合、初期値イコールselectedした値になるようでしたので。 コードまで明記いただき、ありがとうございます!! "0"の件についても、補足ありがとうございました!! 今回は0を消すことで解決しましたが、多分今後必要になりそうなので…補足いただき大変助かりました!! 本当、ご丁寧に回答いただき今回の質問+αのことが解決できました!! ありがとうございました!!

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

あぁ、ちょっと気にはなっていたんですが、やっぱりそこも必要でしたか・・・ ちょっとした応用でいけます。 (ちなみにinputにつかうnameにはキーをふらなくてもPHPが勝手に 判断してくれます) <? if(is_array($_REQUEST["bungu"])){ foreach($_REQUEST["bungu"] as $val){ $checked["bungu"][$val]=" checked"; } } print <<<eof <form> <input type="checkbox" name="bungu[]" value="鉛筆"{$checked["bungu"]["鉛筆"]}>鉛筆 <input type="checkbox" name="bungu[]" value="定規"{$checked["bungu"]["定規"]}>定規 <input type="checkbox" name="bungu[]" value="色鉛筆"{$checked["bungu"]["色鉛筆"]}>色鉛筆 <input type="checkbox" name="bungu[]" value="ペン"{$checked["bungu"]["ペン"]}>ペン <input type="checkbox" name="bungu[]" value="絵具"{$checked["bungu"]["絵具"]}>絵具 <input type="checkbox" name="bungu[]" value="ハサミ"{$checked["bungu"]["ハサミ"]}>ハサミ <input type="checkbox" name="bungu[]" value="ボールペン"{$checked["bungu"]["ボールペン"]}>ボールペン <input type="submit" value="go"> </form> eof; ?>

rabbit-kimura
質問者

お礼

あ、ありがとうございます!!! 本当、何とお礼言っていいのかわかりませんが、 本当に助かりました!!! これから試させていただきます!! 先にお礼を伝えたかったので・・・失礼します!!

rabbit-kimura
質問者

補足

早速ご回答をもとに使わせていただきました!! 無事動作もして、大変満足しております♪♪ >>(ちなみにinputにつかうnameにはキーをふらなくてもPHPが勝手に 判断してくれます) おぉ、こんな豆知識(?)知らずにずっとキーふってたので、感動しました!! 補足というか、更に質問になってしまいますが、 リセットボタンはjavascriptにされてますか?? いじってて気づいたのですが、value=数字の時に、 <option value="01"{$selected["month_kara"][01]}>01</option> "0"が頭にくると動作しないこともわかりました!!

関連するQ&A

専門家に質問してみよう