javascriptを使い開始時刻と終了時刻から、一日分の労働時間を計算したいのですが、select nameの書き方が分かりません。
一日分のプログラムだと動きます。
for文でループをまわし、数日分を一度にやろうとすると動きません。数日分の労働時間を選択するセレクトボックスを表示し、ユーザーに選択してもらい、その際に合計時間を計算し表示し、入力し終わったら、ユーザーが入力した値をPOSTで送りたいです。
ネットで「select nameの配列 書き方」などと調べ、自分と同じような質問をした人がいたのですが、いまいち理解できませんでした。
もしわかる方がいたら、教えていただきたいです。
ファイル名
keisan3.php
html
1<script type="text/javascript"> 2function keisan(){ 3var start = document.form1.stimeH.selectedIndex * 60 + (document.form1.stimeM.selectedIndex * 10); 4var end = document.form1.etimeH.selectedIndex * 60 + (document.form1.etimeM.selectedIndex * 10); 5 6var total = end - start; 7 8var hour = Math.floor(total / 60); 9var min = total - (hour * 60); 10 11document.form1.field1.value = ""+hour; // 合計を表示 12document.form1.field2.value = ""+min; // 合計を表示 13} 14</script> 15 16<!--1行分のデータを表示する--> 17<form action="keisan6.php" name="form1" method="post"> 18<table border="1" cellspacing="0" cellpadding="5"> 19 20<?php 21for ($cnt=0; $cnt < 5; $cnt++) { 22?> 23 24<tr> 25<th>日付</th> 26<th style="padding: 5px; border: 1px solid #333333; width:220px;">労働時間</th> 27<th style="padding: 5px; border: 1px solid #333333; width:110px;">合計</th> 28</tr> 29 30<tr> 31<td><?php echo $cnt+1; ?></td> 32 33<td> 34<!--開始時刻--> 35<select name="hajimari1[$cnt]" onChange="keisan()"> 36<option>00</option> 37<option>01</option> 38<option>02</option> 39<option>03</option> 40<option>04</option> 41<option>05</option> 42<option>06</option> 43<option>07</option> 44<option>08</option> 45<option>09</option> 46<option>10</option> 47<option>11</option> 48<option>12</option> 49<option>13</option> 50<option>14</option> 51<option>15</option> 52<option>16</option> 53<option>17</option> 54<option>18</option> 55<option>19</option> 56<option>20</option> 57<option>21</option> 58<option>22</option> 59<option>23</option> 60</select> 61: 62<select name="hajimari2[$cnt]" onChange="keisan()"> 63<option>00</option> 64<option>10</option> 65<option>20</option> 66<option>30</option> 67<option>40</option> 68<option>50</option> 69</select> 70<!--開始時刻--> 71~ 72<!--終了時刻--> 73<select name="owari[$cnt]" onChange="keisan()"> 74<option>00</option> 75<option>01</option> 76<option>02</option> 77<option>03</option> 78<option>04</option> 79<option>05</option> 80<option>06</option> 81<option>07</option> 82<option>08</option> 83<option>09</option> 84<option>10</option> 85<option>11</option> 86<option>12</option> 87<option>13</option> 88<option>14</option> 89<option>15</option> 90<option>16</option> 91<option>17</option> 92<option>18</option> 93<option>19</option> 94<option>20</option> 95<option>21</option> 96<option>22</option> 97<option>23</option> 98</select> 99: 100<select name="owari[$cnt]" onChange="keisan()"> 101<option>00</option> 102<option>10</option> 103<option>20</option> 104<option>30</option> 105<option>40</option> 106<option>50</option> 107</select> 108<!--終了時刻--> 109</td> 110 111<td><output name="field1">0</output>. 112 <output name="field2">0</output></td> 113</tr> 114</table> 115 116<?php 117} 118?> 119 120</table> 121<input type="submit" value="次へ"></form>
ファイル名
keisan6.php
html
1<?php 2echo "keisan6にいます<br>"; 3for ($cnt=0; $cnt < 5; $cnt++) { 4echo "for文の中にいます。cnt={$cnt}<br>"; 5 if (isset($_POST['hajimari1'][$cnt])) { 6 echo "if文の中にいます"; 7 echo "[{$_POST['hajimari1'][$cnt]}]<br>"; 8 } 9} 10?>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/27 15:23
退会済みユーザー
2015/12/27 15:28 編集
2015/12/27 15:33
退会済みユーザー
2015/12/27 15:35
2015/12/27 15:38
退会済みユーザー
2015/12/27 15:40
2015/12/27 15:41
退会済みユーザー
2015/12/27 15:49