【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

セレクトメニューで下のように、「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>

色々調べてみたのですが、ないものですね。私の勉強不足だとは思いますが、どなたかご助言の程よろしくお願い致します。

A 回答 (2件)

選んでもいないデータをサーバーに飛ばすことはできません



<option value="category_all">すべてのカテゴリ</option>⇒この部分が解らない箇所です。

として、category_allが飛んできたときにはサーバー側のプログラムで
category_a~dが選ばれたと判断する

あとはjavascriptなどで、multipleでそれぞれのoptionを選ぶような
仕組みをつくる

のどちらかでできます
    • good
    • 0

基本的に、POSTされるPHP側で振り分け処理を行うしかありません。



ですので、そこはなんでも好きな文字を入力すればよいです。

<option value="all">すべてのカテゴリ</option>

とか。

後は、PHP側で、

<?php

if($_POST['category'] == 'all'){
//すべてのカテゴリが選択された場合の処理


}else{
//それ以外が選択された場合の処理

}


?>

といったような感じです。
    • good
    • 0

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


おすすめ情報