プロが教えるわが家の防犯対策術!

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

A 回答 (3件)

>残念ながらフォームはHTMLなのです



ごめんなさい、おそらく誤解だと思うのですが命題が矛盾しています

selectに任意のnameをつけることができるのですよね?
であればhogeという名前をつけたいときにhoge[]という名前をつけるだけですよ
それができないのであれば、逆に任意のnameがつけられないということですから
nameが競合すること自体が発生しません。

この回答への補足

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

補足日時:2010/08/11 15:46
    • good
    • 0
この回答へのお礼

お礼が遅くなり、申し訳ありませんでした。
教えて下さった方法はHTMLのフォームのname値を変えればいい、ということだったでしょうか。
(書き忘れていましたが、フォームはHTMLでフォームのactionのリンク先がphpになっています)
変えてみたのですが、今度は何もヒットしなくなりました。

ちなみにname値はデータベースの変数(誤用だったらすみません)です。
同じ変数をname値にして、セレクトボックスを複数作りたいです。

説明不足が多い上に初心者の説明のため分かりにくいと思いますが、解決方法がありましたら教えて下さい。
よろしくお願いします。

お礼日時:2010/08/07 16:49

まず、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"]の変わりに使う感じでいかがしょうか。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/08/11 15:42

PHPならセレクトボックスの名前の後ろに[]をつけてやると配列として受けることができます。



<select name="hoge[]">みたいな感じです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/08/02 15:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!