- 締切済み
セレクトメニューで複数選択した値をpost送信する
セレクトメニューで下のように、「multiple」を使えばカテゴリA~カテゴリDまでを全て選択する事ができますが、 <form method="post" action="test.php"> <select multiple name="category"> <option value="category_a">カテゴリA</option> <option value="category_b">カテゴリB</option> <option value="category_c">カテゴリC</option> <option value="category_d">カテゴリD</option> </select> </form> そうではなくて、下のように「すべてのカテゴリ」という項目を作って、カテゴリA~カテゴリDまでの値をPOST送信したいのですが、どのように記述すればよいのか四苦八苦しております。 <form method="post" action="test.php"> <select name="category"> <option value="?">すべてのカテゴリ</option>⇒この部分が解らない箇所です。 <option value="category_a">カテゴリA</option> <option value="category_b">カテゴリB</option> <option value="category_c">カテゴリC</option> <option value="category_d">カテゴリD</option> </select> </form> 色々調べてみたのですが、ないものですね。私の勉強不足だとは思いますが、どなたかご助言の程よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
選んでもいないデータをサーバーに飛ばすことはできません <option value="category_all">すべてのカテゴリ</option>⇒この部分が解らない箇所です。 として、category_allが飛んできたときにはサーバー側のプログラムで category_a~dが選ばれたと判断する あとはjavascriptなどで、multipleでそれぞれのoptionを選ぶような 仕組みをつくる のどちらかでできます
- hogehoge78
- ベストアンサー率80% (433/539)
基本的に、POSTされるPHP側で振り分け処理を行うしかありません。 ですので、そこはなんでも好きな文字を入力すればよいです。 <option value="all">すべてのカテゴリ</option> とか。 後は、PHP側で、 <?php if($_POST['category'] == 'all'){ //すべてのカテゴリが選択された場合の処理 }else{ //それ以外が選択された場合の処理 } ?> といったような感じです。