PHP フォームを使った計算 【配列】
S本さんとS藤さんが、前回作ったフォームを実戦で使ってみてもらえるとの事でしたので、さっそくバージョンアップしました。
パっと見はほとんど変わりませんが、スクリプトの中身はかなり変わりました。
僕はギャンブルは全くやらないので詳しくはわからないのですが
あると便利そうなものを想像して、いろいろ付け足してみました。
続・多点買いで均等払いになる投資金額を求める
《主な変更点》
*点数は最大10点まで、好きな点数で使える。
*買い目等を記入する memo 欄を追加(空白でも可)
*金額は3桁ごとにカンマ区切りで表示。
*オッズが整数の場合でも、小数点第一位まで表示。
*払い戻しが投資金額を下回る場合は、払戻金を赤色で表示。
*変換切替がじゃまくさい場合は、全角数字でもOK
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <style> body{padding:10px;background-color:#000;color:#fff;line-height:40px} h1{color:#f00;font-size:16px;margin:0} </style> <title>続・多点買いで均等払いになる投資金額を求める</title> </head> <body> <h1>続・多点買いで均等払いになる投資金額を求める</h1> <form method="POST" action="php02_2.php"> 投資金:<input type="text" name="money"> <input type="submit" value="計算する"> <div id="loops"></div> <script>//------------------------------------------------------------> var loop =""; for (i=0;i<10;i++){ loop += ' memo:<input type="text" size="10" name="text[]"> '; loop += ' オッズ:<input type="text" size="3" name="odds[]"><br>';} document.getElementById("loops").innerHTML=loop; </script><!-----------------------------------------------------------> </form> </body> </html>
php02_2.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <style> body{padding:10px;background-color:#000;color:#fff;line-height:40px} h1{color:#f00;font-size:16px;margin:0;} </style> </head> <body> <?php # 代入&計算 ----------------------------------------------------- $moy = htmlspecialchars(mb_convert_kana($_POST['money'],"a","utf-8")); $a=0; for ($i=0;$i<10;$i++){ $tx[$i] = htmlspecialchars(mb_convert_kana($_POST['text'][$i],"a","utf-8")); $od[$i] = htmlspecialchars(mb_convert_kana($_POST['odds'][$i],"a","utf-8")); $a += $od[$i]; } $c=0; for ($i=0;$i<10;$i++){ if ($od[$i]){$b[$i] = $a/$od[$i];} $c += $b[$i]; } $kei=0; for ($i=0;$i<10;$i++){ if ($od[$i]){$d[$i] = round($b[$i]/$c*$moy,-2);} $kei += $d[$i]; } # 表示 ----------------------------------------------------------- echo '<h1>投資金額 合計 ---> '.number_format($kei).' 円</h1>'; for ($i=0;$i<10;$i++){ if ($d[$i]){ $o = number_format($od[$i],1); if ($tx[$i]!='') { $tx[$i] .= " ---> ";} else { $tx[$i] = "オッズ ".$o." --->"; } echo " $tx[$i] ".number_format($d[$i])." 円 × "; $p = number_format($od[$i]*$d[$i]); if ($od[$i]*$d[$i]<$moy){ $p = '<span style="color:#f00">'.$p.'</span>';} echo $o." 倍 = ".$p.' 円<br>'; } } echo '<input type="button" onClick="history.back()" value="戻る">'; ?> </body> </html>