• ベストアンサー

こんにちは。いつもお世話になります。

こんにちは。いつもお世話になります。 現在既存の検索フォーム(PHP)に項目を追加しています。 同じフォーム内に同じname値のセレクトボックスを複数作りたいと思っているのですが、一番後にあるセレクトボックスの値だけが適用されて他が無視されてしまいます。 ひとつのセレクトボックスにまとめることができないため複数設置したいのですが、何か方法はありませんでしょうか。 解決方法がPHPやjavascriptなのかもしれないのですが、検討がつかないためこちらで質問させていただきました。 お力をお貸しいただけましたら助かります。 よろしくお願いします。

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

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

>残念ながらフォームはHTMLなのです ごめんなさい、おそらく誤解だと思うのですが命題が矛盾しています selectに任意のnameをつけることができるのですよね? であればhogeという名前をつけたいときにhoge[]という名前をつけるだけですよ それができないのであれば、逆に任意のnameがつけられないということですから nameが競合すること自体が発生しません。

sm080101
質問者

お礼

お礼が遅くなり、申し訳ありませんでした。 教えて下さった方法はHTMLのフォームのname値を変えればいい、ということだったでしょうか。 (書き忘れていましたが、フォームはHTMLでフォームのactionのリンク先がphpになっています) 変えてみたのですが、今度は何もヒットしなくなりました。 ちなみにname値はデータベースの変数(誤用だったらすみません)です。 同じ変数をname値にして、セレクトボックスを複数作りたいです。 説明不足が多い上に初心者の説明のため分かりにくいと思いますが、解決方法がありましたら教えて下さい。 よろしくお願いします。

sm080101
質問者

補足

補足から失礼します。 申し訳ありません! 「"hoge[]"」と言っていただいていたのを、「[]」をスペースをあらわす□だと思い込んでしまっていました。 「[]」にしたところ、無事にできました。 このたびは本当にありがとうございました。

その他の回答 (2)

  • kuzumiHK
  • ベストアンサー率72% (132/183)
回答No.3

まず、selectのname=hogeを hoge_a、hoge_b、hoge_c などに分けてしまい、PHP側で、$_POST["hoge"]や$_GET["hoge"]で受け取っている部分を、 $hoge_all = $_POST["hoge_a"] . "と" . $_POST["hoge_a"] . "と" . $_POST["hoge_c"]; みたいにつなげてから、$hoge_allを$_POST["hoge"]の変わりに使う感じでいかがしょうか。

sm080101
質問者

お礼

回答ありがとうございました。 nameを変えることができないため、残念ながらできませんでした。 今後の参考にさせていただきます。 ありがとうございました!

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

PHPならセレクトボックスの名前の後ろに[]をつけてやると配列として受けることができます。 <select name="hoge[]">みたいな感じです。

sm080101
質問者

お礼

回答ありがとうございます。 残念ながらフォームはHTMLなのです…。 でもPHPでできるとうかがって、なんとなく希望が見えてきました。 ありがとうございました!

関連するQ&A