PHPで10項目の質問にラジオボタンで選択肢が3つあるフォームを作成しております。
各質問にかならず一つはチェックを入れるといった感じになります。
このフォームの選択肢の組み合わせをExcelにまとめると考えた場合、
自動でこの組み合わせ、この組み合わせと一覧で出力してくれる方法などあるのでしょうか。
現在、各質問に対して選択肢を選択後「結果を表示(submit)」をクリックするとその選択した組み合わせをcsvに書き込むというのはできています。
ですが、この方法だと何万通りぐらいあるのを人力でやらなくてはいけないので時間がかかってしまいます。
PHPで自動で組み合わせの一覧を出力してくれる方法があれば教えていただきたいです。
よろしくお願いいたします。
ちなみに、DBは使用しておりません。
== form.php ==
<p>各項目に該当する選択肢を選択してください</p> <form action="result.php" method="post"> <div class="simulation_area"> <dl> <dt>養生数</dt> <dd class="required"> <p><input class="validate required" type="radio" id="curing1" value="12000" name="curing_t"><label for="curing1">10t以上</lable></p> <p><input type="radio" id="curing2" value="7000" name="curing_t"><label for="curing2">10~5t以上</lable></p> <p><input type="radio" id="curing3" value="2000" name="curing_t"><label for="curing3">5t以上</lable></p> </dd> </dl> <dl> <dt>養生温度</dt> <dd> <p><input class="validate required" type="radio" id="curing4" value="65" name="curing_ond"><label for="curing4">70~60°</lable></p> <p><input type="radio" id="curing5" value="55" name="curing_ond"><label for="curing5">60~50°</lable></p> <p><input type="radio" id="curing6" value="45" name="curing_ond"><label for="curing6">50~40°</lable></p> </dd> </dl> <dl> <dt>養生時間</dt> <dd> <p><input class="validate required" type="radio" id="curing7" value="3" name="curing_time"><label for="curing7">5H以上</lable></p> <p><input type="radio" id="curing8" value="2" name="curing_time"><label for="curing8">5~3H</lable></p> </dd> </dl> <dl> <dt>養生室の大きさ【間口】</dt> <dd> <p><input class="validate required" type="radio" id="curing9" value="4" name="curing_w"><label for="curing9">3m以上</lable></p> <p><input type="radio" id="curing10" value="2" name="curing_w"><label for="curing10">3~1m</lable></p> </dd> </dl> <dl> <dt>養生室の大きさ【高さ】</dt> <dd> <p><input class="validate required" type="radio" id="curing11" value="4" name="curing_h"><label for="curing11">3m以上</lable></p> <p><input type="radio" id="curing12" value="2" name="curing_h"><label for="curing12">3~1m</lable></p> </dd> </dl> <dl> <dt>養生室の大きさ【長さ】</dt> <dd> <p><input class="validate required" type="radio" id="curing13" value="12" name="curing_l"><label for="curing13">10m以上</lable></p> <p><input type="radio" id="curing14" value="7" name="curing_l"><label for="curing14">10~5m</lable></p> <p><input type="radio" id="curing15" value="2" name="curing_l"><label for="curing15">5m以下</lable></p> </dd> </dl> <dl> <dt>養生室の材質</dt> <dd> <p><input class="validate required" type="radio" id="curing16" value="7" name="material"><label for="curing16">シート</lable></p> <p><input type="radio" id="curing17" value="5" name="material"><label for="curing17">ブロック</lable></p> <p><input type="radio" id="curing18" value="3" name="material"><label for="curing18">SUSパネル</lable></p> <p><input type="radio" id="curing19" value="4" name="material"><label for="curing19">FRPパネル</lable></p> </dd> </dl> <dl> <dt>燃料</dt> <dd> <p><input class="validate required" type="radio" id="curing20" value="8700,80" name="fuel"><label for="curing20">重油、灯油</lable></p> <p><input type="radio" id="curing21" value="22000,200" name="fuel"><label for="curing21">ガス</lable></p> </dd> </dl> <dl> <dt>現在の燃料</dt> <dd> <p><input class="validate required" type="radio" id="curing22" value="12" name="now_fuel"><label for="curing22">10リットル/t以上</lable></p> <p><input type="radio" id="curing23" value="7" name="now_fuel"><label for="curing23">10~5リットル/t</lable></p> <p><input type="radio" id="curing24" value="2" name="now_fuel"><label for="curing24">5リットル/t以下</lable></p> </dd> </dl> <dl> <dt>現在の燃料2</dt> <dd> <p><input class="validate required" type="radio" id="curing25" value="7" name="now_fuel2"><label for="curing25">5Nm<span class="sup_text">3</span>/t以上</lable></p> <p><input type="radio" id="curing26" value="4" name="now_fuel2"><label for="curing26">5~3Nm<span class="sup_text">3</span>/t</lable></p> <p><input type="radio" id="curing27" value="2" name="now_fuel2"><label for="curing27">3Nm<span class="sup_text">3</span>/t以下</lable></p> </dd> </dl> <input class="simulation_btn" type="submit" value="結果を表示"> </div> </form>
== result.php ==
<?php //値を取得 $a = $_POST["curing_t"]; $b = $_POST["curing_ond"]; $c = $_POST["curing_time"]; $d = $_POST["curing_w"]; $e = $_POST["curing_h"]; $f = $_POST["curing_l"]; $g = $_POST["material"]; $h = explode(',',$_POST["fuel"]); $j = $_POST["now_fuel"]; $k = $_POST["now_fuel2"]; //各計算式に当てはめる $q1 = $a * 0.2 * ($b - 30) * $c; $q2= $a * 0.115 * ($b - 30) * $c; // 負荷計算 $area_a = $d * $f *2; $area_b = $e * $f *2; $area_c = $d * $e *2; $area = $area_a + $area_b + $area_c; $q3 = $g * $area * ($b-1); $qa = ($q1 + $q2 + $q3) * 1.4; // 1tあたりの燃料消費量(スチームチェンヂャー) $qb = $qa / intval($h[0]) / $a * 1000; // 効果金額 $result = number_format(($j - $qb) * $j * intval($h[1]) * 22 * 12); echo $result; // データ一覧。 $data = array($a, $b, $c, $d, $e, $f, $g, $h[0], $h[1], $j, $k); $ShiftJIS = $data; //文字コードを変えるので、専用の配列を作成してコピー mb_convert_variables('Shift_JIS', 'UTF-8', $ShiftJIS); //文字コードをUTF-8からShiftJISに変更 $csv = fopen('file.csv', 'a'); //csvファイルと書き込みモードを指定 fputcsv($csv, $ShiftJIS); //変換した配列をcsvファイルに書き込み実行 fclose($csv); //csvファイルを閉じる ?>
回答1件
あなたの回答
tips
プレビュー