電子書籍の厳選無料作品が豊富!

10代20代30代…を<select>で表示
ジャンルを5個程を<select>で表示
フォームで金額を入力してもらい、その金額以下

を選択~入力してもらい、ボタンクリックで条件に合う内容を表示させたいです。
詳細は、同じページで表示させたいので、各条件に合った詳細を埋め込んでいこうと思っています。

a1+b1+c1の場合は、a用に作っておいた詳細を表示といった感じが理想です。
簡単に組み込めるとうれしいです。


switch文というものを見つけたのですが、こんな感じで切り替えたいです。

<select name="age">
<option name="age" value="" selected="selected">選択してください</option>
<option name="age" value="19" id="age_1">20歳未満</option>
<option name="age" value="20" id="age_2">20~29歳</option>
<option name="age" value="30" id="age_3">30~39歳</option>
</select>

<select name="cate">
<option name="cate" value="" selected="selected">選択してください</option>
<option name="cate" value="19" id="cate_1">絵本</option>
<option name="cate" value="20" id="cate_2">小説</option>
<option name="cate" value="30" id="cate_3">図鑑</option>
</select>

<input type="text" name="income" id="income" maxlength="4">円</label>

<ボタン>

<?php
$food = "apple";

switch( $food ){
case "apple":
case "banana":
case "grape":
//$foodがapple,banana,grapeだった時の共通処理
echo '$foodは果物です';
break;
case "onion":
case "carrot":
//$foodがonion,carrotだった時の共通処理
echo '$foodは野菜です';
break;
default:
echo '$foodが野菜か果物か不明です';
}
?>


ただ、今気づいたのですが、複数は足すのではなく、複数の条件になるんですね。

A 回答 (2件)

繰り返しになりますがデータベース(SQL)で処理したほうがよいですし


そうでなければかなり煩雑なデータ管理になります

たとえば絵本Aがあったとして
価格が1000円で、カテゴリーは絵本だとします。
お勧めのageは1世代だけでよいのでしょうか?

たとばこんな感じで

<form>
<p>
<select name="age">
<option value="" selected>選択してください</option>
<option value="19" id="age_1">20歳未満</option>
<option value="20" id="age_2">20~29歳</option>
<option value="30" id="age_3">30~39歳</option>
</select>

<select name="cate">
<option value="" selected>選択してください</option>
<option value="19" id="cate_1">絵本</option>
<option value="20" id="cate_2">小説</option>
<option value="30" id="cate_3">図鑑</option>
</select>
<input type="text" name="income">円
<input type="submit" value="go">
</p>
</form>

<?PHP
$books=array(
'id0001'=>array("name"=>"絵本A","cate"=>"19","age"=>"19","price"=>1000)
,'id0002'=>array("name"=>"絵本B","cate"=>"19","age"=>"20","price"=>3000)
,'id0101'=>array("name"=>"小説X","cate"=>"20","age"=>"30","price"=>1500)
,'id0102'=>array("name"=>"小説Y","cate"=>"20","age"=>"30","price"=>1200)
,'id0103'=>array("name"=>"小説Z","cate"=>"20","age"=>"30","price"=>1000)
);
print_r(gebooks());

function gebooks($books)
{
$age=isset($_GET["age"])?$_GET["age"]:false;
$cate=isset($_GET["cate"])?$_GET["cate"]:false;
$income=isset($_GET["income"])?$_GET["income"]:false;
if(!$age or !$cate or !$income) return false;
$retbooks=array();
foreach($books as $id=>$book){
if($book["age"]==$age and $book["cate"]==$cate and $book["price"]<=$income){
$retbooks[]=$id;
}
}
return $retbooks;
}
?>

ここで30代、小説、1万円以下とすれば3つヒットします
書籍名をだのであれば各idにたいして

$books[該当id]["name"]で参照すればいいでしょう
    • good
    • 0

複数条件をどうからめたいのかわかりません。


データが多く絞り込みをしたいならSQLなど利用したほうがよいかもしれません。
    • good
    • 0
この回答へのお礼

説明下手ですみません。
選択肢の分だけ答えを予め準備しておき、例えば、30代で絵本のジャンルで1000円以下を探している人に対して、
その条件の場合は、<table><tr><td>詳細</td></tr></table>など、予めに用意しているものを下に表示させるといった感じです。

お礼日時:2015/06/10 12:49

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