
質問させて頂きます。このカテゴリで良いのか分かりませんが、間違っていたら、すみません。
僕は今、シャンプーの販売サイトを運営しているのですが、そのコンテンツとして商品の適性診断みたいなのを作りたいと思っています。
具体的に申しますと、例えば、質問項目に「かゆみが出やすい」を「yes」か「no」で選択させ、選択すると次のページに移り、そこでまた質問項目に「ふけが出やすい」を「yes」か「no」で選択させ、これをいくつか続け、最後に、「あなたに適している商品は○○です」みたいな感じにしたいと思っています。PHPやCGIの知識はほんの少し程度しかありませんが、自作できればそれが一番良いのですが。あまり高度は知識がないとやはり無理でしょうか。例えば、無料のPHPスクリプトやCGIスクリプトみたいなのがあればいいなとも思っています。自分でももちろん色々調べたのですが、力不足で見当たりません。
漠然とした質問になってしまいましたが、とにかく質問項目も5,6個程度で商品も10個ぐらいなので、簡単なもので構いません。どなたかよろしくお願いします。
No.4ベストアンサー
- 回答日時:
失礼しました。
6通りじゃなく、2の3乗=8通りの組み合わせですよね。-db.datの中身を、以下のように変えて下さい。
Y,Y,Y,商品1
Y,Y,N,商品2
Y,N,N,商品3
Y,N,Y,商品4
N,Y,Y,商品5
N,N,Y,商品6
N,N,N,商品7
N,Y,N,商品8
joy_28様、返事が遅れまして、大変申し訳ございませんでした。アドバイスして頂いた方向で頑張ってみたいと思います。本当にありがとうございました。また何かございましたらよろしくお願い致します。
No.3
- 回答日時:
2点、手を抜いてましたので、追加します。
-html側
<input type="radio" name="kayumi" value="Y"checked>強い<br>のように、選択状態を示す、checkedをそれぞれ、入れて下さい。
-php側
~中略
$file=fopen("db.dat","r");
flock($file,LOCK_SH);//共有ロック
while($row=fgetcsv($file)){
if($row[0]==$data[0] && $row[1]==$data[1] && $row[2]==$data[2]){//0,1,2の要素文字列が全て、合致していたなら、
print $row[3].'が、推奨品です';//その配列要素4番目を表示する
}
}
flock($file,LOCK_UN);//ロック解除
~以下略
No.2
- 回答日時:
aikaj127さん、
PHPで作るとすれば、以下のような例もあります。
【基本的な考え方】5問に2つずつの回答があるので、5×2=10通りの結論がありますので、予め、テキストで、その組み合わせとそれに対応する商品を、CSV方式で、記載しておき、回答された組み合わせとマッチングを行って、該当商品名を表示するという方法もあります。
【一例】10個の組み合わせは、お任せするとして、3つの質問、即ち6個の結論を例にします。質問は、適当です。尚、全て、UTF-8で記載してます。
-html側:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>商品選択</title>
</head>
<body>
<p>以下の質問にお答え下さい<p>
<form method="post" action="./answer.php">
<p>Q1:かゆみが強いですか?</p>
<p>
<input type="radio" name="kayumi" value="Y">強い<br>
<input type="radio" name="kayumi" value="N">弱い
</p>
<p>Q2:乾燥しやすいですか?</p>
<p>
<input type="radio" name="kanso" value="Y">し易い<br>
<input type="radio" name="kanso" value="N">しにいく<br>
</p>
<p>Q3:淡泊な色が好きですか?</p>
<p>
<input type="radio" name="iro" value="Y">淡泊な色<br>
<input type="radio" name="iro" value="N">濃い色く<br>
</p>
<p>
<input type="submit" value="回答"><input type="reset" value="取り消し">
</p>
</form>
</body>
</html>
-PHP側:ファイル名、answer.php
<?php
$kayumi=$_POST['kayumi'];//html側のkayumiのvalueを取得して、変数$kayumiに代入
$kanso=$_POST['kanso'];
$iro=$_POST['iro'];
$data=array($kayumi,$kanso,$iro);//配列を生成し、
$file=fopen("db.dat","r");//予め組み合わせを作っておいた、テキスト型のdb.datを開き、
while($row=fgetcsv($file)){//,区切りで、一行ずつ読み込み、配列作成
if($row[0]==$data[0] && $row[1]==$data[1] && $row[2]==$data[2]){//0から3番目の文字列が全て、合致していたなら、
print $row[3].'が、推奨品です';//その配列要素3番目を表示する
}
}
fclose($file);
-外部テキスト型のファイル名:db.dat
Y,Y,Y,商品1
Y,Y,N,商品2
Y,N,N,商品3
N,Y,Y,商品4
N,N,Y,商品5
N,N,N,商品6
一度、これで、試してみて、NEXT方式を考えたらいかがでしょうか?
質問数も少ないので、NEXT方式でなくても、いいような気がしますが、どうしてもと言うなら、#1の回答者がおっしゃているように、クライントアプリだけで、組み上げる、Flashの採用か、Flashとこの組み合わせも、考えられます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DBの値をチェックボックスに反...
-
HTMLで前の画面に戻る時、入力...
-
PHPで動的URLを静的URLに変換す...
-
選択された値をセッションで保...
-
検索時の選択内容を保持する方法
-
POSTやGETの変数をフォーム無し...
-
同じページでフォームデータを...
-
複数のセレクトボックスで
-
PHPでURLにジャンプするには?
-
フォーム送信後の更新ボタンで...
-
laravelを利用してコントロール...
-
これに間違いはありますか?
-
PHPでのエラー(unexpected T_S...
-
テキストボックスの値を取得したい
-
重複を防ぐ記述について教えて...
-
"/". $valueptr . "/", の”/”は...
-
if文のもっとスマートな書き方
-
php MySQL データ登録 方法
-
正規表現について
-
文法の質問です
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
検索時の選択内容を保持する方法
-
DBの値をチェックボックスに反...
-
$_SESSIONについて教えて下さい。
-
PHPで、ボタンを押すと同じペー...
-
PHP ボタンが押されたら処理を...
-
<input type="hidden" >で配列...
-
入力した部分を表示させたまま...
-
アンケートフォームの作り方
-
画面が更新されてもチェックボ...
-
ラジオボタンをsessionで使いたい
-
チェックボックスによる検索
-
PHPで画像の渡しが上手く行きま...
-
同じページでフォームデータを...
-
POSTをボタンではなくリンク等...
-
配列をhiddenで
-
HTMLのvalue値を取得したい。
-
パラメーターを隠す
-
PHPで画像データーのアップロー...
-
選んだ数字だけ繰り返す
おすすめ情報