前提・実現したいこと
入力画面と確認画面があります。
入力はドロップダウンリストとテキストボックスが入り混じっています。
テキストボックスには数値を入れて、最終的に合計を確認画面で確認できるようにしております。
その際
・入力行の作成をループで作成し、任意の行数を入れたい。
・行それぞれの変数をループで取得できるようにしたい。
・確認画面でもPOST(又はGET)の取得をループで取得できるようにしたい。
という部分においてうまくいっておりません。
ご助力お願い致します。
入力画面↓
php
1<head> 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 3</head> 4 5<body> 6 <form action="kakunin.php" name="form" method="post"> 7 <table> 8 <tr> 9 <td> 10 <select name="transport1"> 11 <?php 12 $traline1 = array('-' => '0','地下鉄' => '地下鉄','JR在来線' => 'JR在来線','JR新幹線' => 'JR新幹線','阪急' => '阪急','京阪' => '京阪'); 13 foreach($traline1 as $k => $v) { 14 print("<option value='$k'>$k</option>"); 15 } 16 ?> 17 </select> 18 </td> 19 <td> 20 <input type="text" name="price1a"> 21 </td> 22 <td> 23 <select name="division1"> 24 <?php 25 $divline1 = array('-' => '0','片道' => '1','往復' => '2'); 26 foreach($divline1 as $k => $v) { 27// print sprintf("<option value='%s'>%s</option>\n", $k ,$v);//文字列表現 28 print("<option value='$k'>$k</option>"); 29 } 30 ?> 31 </select> 32 </td> 33 <td> 34 <input disabled type="text" name="total1a" value="0"> 35 </td> 36 </tr> 37 <tr> 38 <td> 39 <select name="transport2"> 40 <?php 41 $traline2 = array('-' => '0','地下鉄' => '地下鉄','JR在来線' => 'JR在来線','JR新幹線' => 'JR新幹線','阪急' => '阪急','京阪' => '京阪'); 42 foreach($traline2 as $k => $v) { 43 print("<option value='$k'>$k</option>"); 44 } 45 ?> 46 </select> 47 </td> 48 <td> 49 <input type="text" name="price2a"> 50 </td> 51 <td> 52 <select name="division2"> 53 <?php 54 $divline2 = array('-' => '0','片道' => '1','往復' => '2'); 55 foreach($divline2 as $k => $v) { 56// print sprintf("<option value='%s'>%s</option>\n", $k ,$v);//文字列表現 57 print("<option value='$k'>$k</option>"); 58 } 59 ?> 60 </select> 61 </td> 62 <td> 63 <input disabled type="text" name="total2a" value="0"> 64 </td> 65 </tr> 66 <tr> 67 <td> 68 <select name="transport3"> 69 <?php 70 $traline3 = array('-' => '0','地下鉄' => '地下鉄','JR在来線' => 'JR在来線','JR新幹線' => 'JR新幹線','阪急' => '阪急','京阪' => '京阪'); 71 foreach($traline3 as $k => $v) { 72 print("<option value='$k'>$k</option>"); 73 } 74 ?> 75 </select> 76 </td> 77 <td> 78 <input type="text" name="price3a"> 79 </td> 80 <td> 81 <select name="division3"> 82 <?php 83 $divline3 = array('-' => '0','片道' => '1','往復' => '2'); 84 foreach($divline3 as $k => $v) { 85// print sprintf("<option value='%s'>%s</option>\n", $k ,$v);//文字列表現 86 print("<option value='$k'>$k</option>"); 87 } 88 ?> 89 </select> 90 </td> 91 <td> 92 <input disabled type="text" name="total3a" value="0"> 93 </td> 94 </tr> 95 </table> 96 <input type="submit" value="確認" class="btn"> 97 </form> 98</body>
確認画面↓
php
1<body> 2<h1>出張旅費確認画面</h1> 3<table> 4<?php 5header('Content-Type: text/html; charset=UTF-8'); 6error_reporting(E_ALL & ~E_NOTICE); 7for($i=1;$i<=3;$i++){ 8$tra[$i]=$_POST['transport'$i]; 9$pri[$i]a=$_POST['price'$i'a']; 10$div[$i]=$_POST['division'$i]; 11$total[$i]a = $pri[$i]a; 12} 13if($_POST[Submit]){ 14for($i=0;$i<=5;$i++){ 15 if($_POST["tra".$i]=="0" || $_POST["pri".$i."a"]=='' || $_POST["div".$i]=='0')){ 16 $trim = trim($total1a); 17 } 18 else{ 19 $_POST["total".$i."a"] = $_POST["pri".$i."a"]; 20 print'<tr>'; 21 print'<td>交通機関:'; 22 print$_POST["tra".$i]; 23 print'</td>'; 24 print'<td>単価:'; 25 print$_POST["pri".$i."a"]; 26 print'</td>'; 27 print'<td>区間:'; 28 print$_POST["div".$i]; 29 print'</td>'; 30 print'<td>合計:'; 31 print$_POST["total".$i."a"]; 32 print'円</td>'; 33 print'</tr>'; 34 } 35} 36?> 37</table> 38</body>
試したこと
確認画面を以下のようにすれば当然表示はされますが、
冗長的になってしまっている部分をループを使って簡潔にしたいです。
php
1<body> 2<table> 3<?php 4header('Content-Type: text/html; charset=UTF-8'); 5error_reporting(E_ALL & ~E_NOTICE); 6$tra1=$_POST['transport1']; 7$tra2=$_POST['transport2']; 8$tra3=$_POST['transport3']; 9$pri1a=$_POST['price1a']; 10$pri2a=$_POST['price2a']; 11$pri3a=$_POST['price3a']; 12$div1=$_POST['division1']; 13$div2=$_POST['division2']; 14$div3=$_POST['division3']; 15$total1a = $pri1a; 16$total2a = $pri2a; 17$total3a = $pri3a; 18$totala = $total1a + $total2a + $total3a 19 20if($tra1=='0' || $pri1a=='' || $div1=='0'){ 21 $trim = trim($total1a); 22} 23else{ 24 print'<tr><td>交通機関:'; 25 print$tra1; 26 print'</td><td>単価:'; 27 print$pri1a; 28 print'</td><td>区間:'; 29 print$div1; 30 print'</td><td>合計:'; 31 print$total1a; 32 print'円</td></tr>'; 33} 34if($tra2=='0' || $pri2a=='' || $div2=='0'){ 35 $trim = trim($total2a); 36} 37else{ 38 print'<tr><td>交通機関:'; 39 print$tra2; 40 print'</td><td>単価:'; 41 print$pri2a; 42 print'</td><td>区間:'; 43 print$div2; 44 print'</td><td>合計:'; 45 print$total2a; 46 print'円</td></tr>'; 47} 48if($tra3=='0' || $pri3a=='' || $div3=='0'){ 49 $trim = trim($total3a); 50} 51else{ 52 print'<tr><td>交通機関:'; 53 print$tra3; 54 print'</td><td>単価:'; 55 print$pri3a; 56 print'</td><td>区間:'; 57 print$div3; 58 print'</td><td>合計:'; 59 print$total3a; 60 print'円</td></tr>'; 61} 62?> 63</table> 64</body>
補足情報(FW/ツールのバージョンなど)
XAMPP、apache、クロームで動かしています。