前回も似たような質問をしたのですが、自分の理解が悪く。もう一度投稿させていただきました。
javascriptを使い、前の値と後ろの値を足しその答えを自動的に表示させたいです。
一回分のプログラムだと動きます。
for文でループをまわし、数回分を一度にやろうとすると動きません。数回分の計算を選択するセレクトボックスを表示し、ユーザーに選択してもらい、その際に結果を計算、表示し、入力し終わったら、ユーザーが入力した値をPOSTで送りたいです。
ネットで「select nameの配列 書き方」などや「javascript php 添え字 配列」と調べ、自分と同じような質問をした人がいたのですが、いまいち理解できませんでした。
もしわかる方がいたら、教えていただきたいです。
「javascript php 添え字 配列」と調べて出てこないということは、そもそもこのような動きの場合に、select nameを配列にし、それをjavascriptに渡すこと自体間違っているのでしょうか。
ファイル名:keisan1.php
html
1<form name="form1" action = "keisan2.php"> 2<table border="1" cellspacing="0" cellpadding="5"> 3<tr> 4<th style="padding: 5px; border: 1px solid #333333; width:50px;">回数</th> 5<th style="padding: 5px; border: 1px solid #333333; width:220px;">足し算</th> 6<th style="padding: 5px; border: 1px solid #333333; width:110px;">計算結果</th> 7</tr> 8 9<?php for ($cnt = 0; $cnt < 2; $cnt++) { ?> 10<tr> 11<td><?php echo $cnt; ?>回目</td> 12<td> 13<select name="mae[<?php echo $cnt; ?>]" onChange="keisan()"> 14<option>0</option> 15<option>1</option> 16<option>2</option> 17<option>3</option> 18<option>4</option> 19<option>5</option> 20</select> 21+ 22<select name="usiro[<?php echo $cnt; ?>]" onChange="keisan()"> 23<option>0</option> 24<option>1</option> 25<option>2</option> 26<option>3</option> 27<option>4</option> 28<option>5</option> 29</select> 30</td> 31 32<td><output name="field1">0</output></td> 33</tr> 34<?php } ?> 35</table> 36</form> 37 38<script type="text/javascript"> 39function keisan(){ 40 var mae = document.form1.["mae[<?php echo $cnt; ?>]"].selectedIndex; 41 var usiro = document.form1.["usiro[<?php echo $cnt; ?>]"].selectedIndex; 42 43 var total = mae + usiro; 44 45 document.form1.field1.value = ""+total; 46} 47</script> 48<input type="submit" value="次へ"></form>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。