zork2.htmlとzork.phpという2つのファイルがあります。
zork2.htmlでのゲームオーバー画面(id="stage100")で、プレイヤーの行動に応じて加算された合計得点(変数points)を表示しています。
そしてプレイヤーの入力するお名前と、合計得点(id="score" name="points" type="hidden")をzork.phpにPOSTします。
「合計得点:」の欄にpointsの値が正常に表示されるので
document.getElementById('treasure_sum').innerHTML = points;
は問題無く動いているようなんですが、
document.getElementById('score').value = points;
が何かおかしいのか、データベースのpointsのレコードには0しか入りません。お名前の値は正常に入っています。
どこが間違っていますでしょうか? どうすれば正しいpointsの値がデータベースのpointsに入りますでしょうか?
zork2.html↓
html
1~略~ 2 3<div class="box1" id="stage99"> 4なんだこの終わり方は……。<br> 5お願いです。次回はHAPPY ENDを目指してください!<br> 6<br> 7<br> 8<a href="#stage100" class="gamestart" onclick="sum_treasure();">GAME<br>OVER</a> 9</div> 10 11<div class="box1" id="stage100"> 12ハイスコア登録<br> 13<br> 14<br> 15<br> 16<form action="zork.php" method="POST" target="_top"> 17お名前(20文字以内):<br> 18<input type = "text" name = "yourname"><br> 19<input id="score" name="points" type="hidden"> 20<br> 21手に入れた宝物:<br> 22<div id="treasure_mail">○○ 5点</div> 23<div id="treasure_key">○○○○ 10点</div> 24<div id="treasure_asteca">○○○○○○○○ 15点</div> 25<div id="treasure_memo">○○ 20点</div> 26<div id="treasure_coffee">○○○○ 50点</div> 27<br> 28合計得点: 29<div id="treasure_sum">0</div> 30<br> 31<input type="submit" value="登録する"><br> 32</form> 33</div> 34 35~略~ 36 37function sum_treasure () 38{ 39 if (mail === 1) 40 { 41 points = points + 5; 42 document.getElementById('treasure_mail').innerHTML = '手紙 5点'; 43 } 44 if (key === 1) 45 { 46 points = points + 10; 47 document.getElementById('treasure_key').innerHTML = '玄関の鍵 10点'; 48 } 49 if (asteca === 1) 50 { 51 points = points + 15; 52 document.getElementById('treasure_asteca').innerHTML = 'デーモンズリング 15点'; 53 } 54 if (clear === 1) 55 { 56 points = points + 70; 57 document.getElementById('treasure_memo').innerHTML = 'メモ 20点'; 58 document.getElementById('treasure_coffee').innerHTML = 'コーヒー 50点'; 59 } 60 61 document.getElementById('treasure_sum').innerHTML = points; 62 document.getElementById('score').value = points; 63} 64 65~略~
zork.php↓
php
1<?php 2 3/* 4//ローカルXAMPPの情報 5$host = '127.0.0.1'; // データベースのホスト名又はIPアドレス 6$username = '*****'; // MySQLのユーザ名 7$passwd = '*****'; // MySQLのパスワード 8$dbname = '*****'; // データベース名 9 10$link = mysqli_connect($host, $username, $passwd, $dbname); 11 12$msg = ''; 13$yourname = ''; 14$result = array(); 15 16// 接続成功した場合 17if ($link) 18{ 19 // 文字化け防止 20 mysqli_set_charset($link, 'utf8'); 21 22 if ($_SERVER['REQUEST_METHOD'] === 'POST') 23 { 24 if (isset($_POST['yourname']) === TRUE) 25 { 26 $yourname = $_POST['yourname']; 27 } 28 $yourname = substr($yourname, 0, 20); 29 30 if (isset($_POST['points']) === TRUE) 31 { 32 $points = $_POST['points']; 33 } 34 35 $query = 'SELECT yourname, points, date FROM zork'; 36 $result = mysqli_query($link, $query); 37 while ($row = mysqli_fetch_array($result)) 38 { 39 /* 40 if ($yourname === $row['yourname']) 41 { 42 $msg = '名前重複'; 43 } 44 */ 45 } 46 47 if ($msg === '') 48 { 49 $yourname = htmlspecialchars($yourname, ENT_QUOTES, 'UTF-8'); 50 $date = date ('Y/m/d'); 51 52 $query = 'INSERT INTO zork (yourname, points, date) VALUES ("' . $yourname . '", points, "' . $date . '")'; 53 54 $result = mysqli_query($link, $query); 55 56 if ($result === TRUE) 57 { 58 $msg = '登録しました。ありがとうございました。'; 59 } else 60 { 61 $msg = '何らかのエラーで投稿できませんでした。'; 62 } 63 } 64 } 65 66?> 67<!DOCTYPE html> 68<html lang="ja"> 69<head> 70 <meta charset="UTF-8"> 71 <title></title> 72 <style type="text/css"> 73 * 74 { 75 color: #c0ffc0; 76 } 77 78 body 79 { 80 width: 640px; 81 margin: 0 auto; 82 background-color: #000000; 83 font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif; 84 font-size: 22px; 85 color: #c0ffc0; 86 } 87 88 table 89 { 90 width: 600px; 91 margin: 0 auto; 92 } 93 94 th 95 { 96 word-break: break-all; 97 text-align: center; 98 vartical-align: top; 99 font-size: 16px; 100 color: #c0ffc0; 101 line-height: 125%; 102 border: solid 1px #c0ffc0; 103 padding: 5px; 104 } 105 106 td 107 { 108 word-break: break-all; 109 text-align: center; 110 vartical-align: top; 111 font-size: 18px; 112 color: #c0ffc0; 113 line-height: 125%; 114 border: solid 1px #c0ffc0; 115 padding: 5px; 116 } 117 118 .button_style 119 { 120 font-size:12px; 121 text-decoration:none; 122 text-align:center; 123 padding:4px; 124 color:#c0ffc0; 125 background-color:#000000; 126 border-radius:5px; 127 } 128 129 .dousuru 130 { 131 display: block; 132 width: 100px; 133 height: 48px; 134 margin: 5px; 135 padding: 5px; 136 border: 2px solid #c0ffc0; 137 border-radius: 15px; 138 text-align: center; 139 vertical-align: middle; 140 clear: both; 141 } 142 143 a 144 { 145 text-decoration: none; 146 } 147 </style> 148</head> 149<body> 150<?php 151 print ($msg . '<br><br>'); 152?> 153<a href="zork.html" target="_top"><span class="dousuru">戻る</span></a><br> 154<table> 155 <tr> 156 <th width = '300'> 157 お名前 158 </th> 159 <th width = '100'> 160 得点 161 </th> 162 <th width = '200'> 163 登録日 164 </th> 165 </tr> 166 <tr> 167 <?php 168 // SELECTクエリを実行する 169 $query = 'SELECT yourname, points, date FROM zork ORDER BY points DESC'; 170 $result = mysqli_query($link, $query); 171 172 // 1行ずつ結果を配列で取得します 173 while ($row = mysqli_fetch_array($result)) 174 { 175 ?> 176 <td> 177 <?php 178 print ($row['yourname']); 179 ?> 180 </td> 181 <td> 182 <?php 183 print ($row['points']); 184 ?> 185 </td> 186 <td> 187 <?php 188 print ($row['date']); 189 ?> 190 </td> 191 </tr> 192 <?php 193 } 194 ?> 195</table> 196 <?php 197 // 結果セットを開放します 198 mysqli_free_result($result); 199 200 // 接続を閉じます 201 mysqli_close($link); 202 203// 接続失敗した場合 204} 205else 206{ 207 print ('何らかのエラーで登録できませんでした。'); 208} 209 ?> 210</body> 211</html> 212
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/13 13:54
2016/06/13 14:07
2016/06/13 14:27
2016/06/13 15:35
2016/06/14 00:41