LoginSignup
0
1

More than 3 years have passed since last update.

HTMLとPHPで作る簡易チェックアプリ。(のような物)

Posted at

HTMLとPHPで作る簡易チェックアプリ。(のような物)

PHPでHTMLのformタグを使って値を渡す方法のチェックボックス編。
パラメータで渡した値で簡単に体調管理アプリ(のような物)を作り備忘録としました。
可読性を上げるためヘッダーとフッターは分割して部分テンプレート化し、
require文で呼び出してます。

入力側

container_input.php
<?php require './header.php'?>
<form action="container_output.php" method="post">

<p>今朝の体調は?</p>

<?php
//チェックボックスの項目。
$check = ['高熱','微熱','吐き気','めまい','悪寒','特に何もなし'];

//name属性に配列を使うことで複数の値が使える。
foreach ($check as $status) {
    echo '<input type="checkbox" name="check[]" value="', $status, '">';
    echo $status;
}
?>

<p><input type="submit" value="診断"></p>

</form>
<?php require './footer.php'?>

出力側

container_output.php
<?php require './header.php'?>
<?php

//それぞれのポイントを収納する空の配列を用意。
$point = [];

//値、つまりもしもチェックボックスにチェックが入っていたら…
if (isset($_REQUEST['check'])){

    //入力側でチェックを入れた項目の要素を取り出して…
    foreach ($_REQUEST['check'] as $status){
        //条件に一致したチェック項目ごとに値を割り振り、ポイントを収納する配列に値が入る。
        switch($status){
            case '高熱':
                $point[] = 5;
                break;
            case '微熱':
                $point[] = 4;
                break;
            case '吐き気':
                $point[] = 3;
                break;
            case 'めまい':
                $point[] = 2;
                break;
            case '悪寒':
                $point[] = 1;
                break;
            case '特に何もなし':
                $point[] = 0;
                break;
        }
    }

    //array_sum関数で配列の各要素のポイントの合計を計算。
    $total = array_sum($point);

        //switchにtrueを指定し、数値と文字列を明確に判断。
        switch(true){

            //配列の各要素のポイントの合計に応じて…
            case ($total >= 5):
                echo '病院に行きましょう';
                break;
            case ($total >= 3 && $total < 5):
                echo '無理せず寝ていましょう';
                break;
            case ($total >= 1 && $total < 3):
                echo 'お気をつけて。';
                break;
            default:
                echo 'お元気ですね。';

        }
}

?>
<?php require './footer.php'?>

あくまで勉強と備忘録を兼ねたものであって、医学的な根拠は全くありませんのでご注意ください。


check_input.png

チェックボックスを選択して↑診断ボタンを押すと↓


check_output.png

チェックボックスごとに割り振られたポイントの合計によってメッセージが変化します。

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1