[簡単]プログラミングBMI計算の作り方(PHP)
こんにちは。kakeです。
先日にこのようなBMIを測定するアプリを作りました。とても簡単な内容なので、すぐに作れます。
このようなものです。
それでは、解説していきます。
Contents
BMI測定の仕様
仕様はとても簡単です。
- 身長と体重を入力する→BMIが測定される
- コメント出力させる
たったのこれだけなのですぐに作れますね。
今回はCSSについては省きます。
今回使用する言語
HTML,(CSS),PHP,jQueryの4つを使っています。
機能の部分をPHPで作り、jQueryで一箇所だけ動きをつけました。
BMI測定の作り方
それでは作り方について解説していきます。
まず、用意するファイルは今回は4つです。
用意するファイル4つ
- index.php
- result.php
- script.js
- stylesheet.css
index.phpはメイン画面です。つまり、身長と体重を記入する部分です。
result.phpはBMIの値を出力する画面です。つまり結果の画面ですね。
script.jsはコメントを出すときに動きをつけるために作りました。他にも機能を加えて、さらに動きをつける場合はここに記述していきましょう。
stylesheet.cssではスタイルの記述をしていきましょう。今回は解説の対象外とします。
記入画面の作りこみ
まずは、index.phpの記述からしていきましょう。
formで身長と体重を選択してPOSTで送ってあげましょう。以下のように記述すればオッケーです。
<h1>BMI測定システム</h1>
<form action="" method="post">
<p>身長を選択してください</p>
<select name="height">
<?php for($i=130;$i<200;$i++): ?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php endfor; ?>
</select>
<p>体重を選択してください</p>
<select name="weight">
<?php for($j=30;$j<200;$j++): ?>
<option value="<?php echo $j; ?>"><?php echo $j; ?></option>
<?php endfor; ?>
</select>
<br>
<br>
<input type="submit" value="BMIの結果をみる">
</form>

上のように表示されていればオッケーです。
optionタグの中身はPHPで記述してあげましょう。forを使いループさせます。
formではactionは空にして、index.phpにpostで返してあげましょう。
結果画面の作りこみ
さて次に結果画面を作っていきます。
result.phpに記述していきます。
<h1>BMI測定結果</h1>
<p>BMI値:<?php echo $bmi; ?></p>
<!-- コメント部分 -->
<div class="comment">
<p>コメント</p>
<?php if($bmi>25): ?>
<p><?php echo $comments[2]; ?>
<?php endif; ?>
<?php if($bmi<18.5): ?>
<p><?php echo $comments[0]; ?>
<?php endif; ?>
<?php if(18.5<=$bmi && $bmi<=25): ?>
<p><?php echo $comments[1]; ?>
<?php endif; ?>
</div>
こんな感じです。
&&は「かつ」という意味です。
$bmiと$commentsについてはあとで解説していきます。
formの結果を受け取る
さてindex.phpに戻り、postされた結果を受け取り、session(セッション)として保存しつつ、result.phpに移動します。
index.phpの先頭で記述していきましょう。
<?php
session_start();
if(!empty($_POST)){
$_SESSION = $_POST;
header('Location: result.php');
exit();
}
?>
これでresult.phpに移動します。
result.phpに移動したら、BMIの計算をしていきます。
result.phpの先頭で記述していきます。
<?php
session_start();
$bmi = number_format(($_SESSION['weight']/($_SESSION['height']*$_SESSION['height']))*10000 , 2);
$comments = array('コメント1','コメント2','コメント3');
?>
$bmiにはBMIの計算結果を代入します。また、小数点二桁まで表示するために、number_formatを利用しました。
この時$_SESSIONに値が保存されているので、nameを指定して計算していきます。
※session_start();を忘れないようにしましょう。
そして$commentsにはコメントをいれておきました。
これで機能面についてはできました。
jQueryでコメントを表示する(おまけ)
せっかくなので動きをつけてあげましょう。
result.phpのコメントの部分を非表示にしておき、ボタンが押されたら表示されるように、しましょう。
- コメント部分をCSSで非表示にしておく
- 「コメントを見る」ボタンが押されたら、jQueryで表示させる
※ボタンを作ってください。
この流れで作りましょう。
jQueryは以下のようにscript.jsに記述します。
$(function(){
$('.btn').click(function(){
$('.comment').fadeIn();
});
});
ざっとこんな感じです。
クリックファンクションを使って、表示させてあげればいいですね。
まとめ
以上かなりはしょりながら簡単に解説しましたが、BMIを測定するアプリの作り方でした。
基礎的なPHPの使い方にもなるので、これくらいはサクッと作れるといいですね。
何かミスなどあればぜひコメントください。僕も学びになります。
それではまた。