###前提・実現したいこと
PHPでアルバイトの一ヶ月のシフトを送信するプログラムを作っていて現在、シフトの
入力テーブルを作成しています。
テーブルには下の様に月ごとの日付(例、1日‐30日まで)とhtmlのinput要素をセットにして
あります。
望みとしては一週間ごとに段落が折り返すようにしてほしいのと
for文やforeach文で簡潔にまとめて書きたいです。
自分で試してみてなんとかテーブルを作成できましたがfor文が6つもできてしまい
どうしても無駄が省けないのです。
お知恵をお借りしたいです、よろしくお願いします。
###該当のソースコード
PHP
1 <table class='table'> 2<?php 3 $array = []; 4 for($i = 0;$i < 7;$i++){ 5 $array[$i] = ""; 6 } 7 $k = 0;//条件 8 $j = 1;//表示 9 $i = 1;//表示 10 11 foreach($array as $row){ 12 print "<th class='th'>{$j}日</th>"; 13 $k++; 14 $j++; 15 $k % 7 == 0 && $k !== 0 ? print "<tr></tr>" : print ""; 16 } 17 $k = 0; 18 foreach($array as $row){ 19 print "<td><input name='{$i}' class='time' value=''></td>"; 20 $k++; 21 $i++; 22 $k % 7 == 0 && $k !== 0 ? print "<tr></tr>" : print ""; 23 } 24 ?> 25 26 </table> 27 <table class="table"> 28 <?php 29 30 $k = 0; 31 foreach($array as $row){ 32 print "<th class='th'>{$j}日</th>"; 33 $k++; 34 $j++; 35 $k % 7 == 0 && $k !== 0 ? print "<tr></tr>" : print ""; 36 } 37 $k = 0; 38 foreach($array as $row){ 39 print "<td><input name='{$i}' class='time' value=''></td>"; 40 $k++; 41 $i++; 42 $k % 7 == 0 && $k !== 0 ? print "<tr></tr>" : print ""; 43 } 44 45 ?> 46 </table> 47 <table class="table"> 48 <?php 49 50 $k = 0; 51 foreach($array as $row){ 52 print "<th class='th'>{$j}日</th>"; 53 $k++; 54 $j++; 55 $k % 7 == 0 && $k !== 0 ? print "<tr></tr>" : print ""; 56 } 57 $k = 0; 58 foreach($array as $row){ 59 print "<td><input name='{$i}' class='time' value=''></td>"; 60 $k++; 61 $i++; 62 $k % 7 == 0 && $k !== 0 ? print "<tr></tr>" : print ""; 63 } 64 65 ?> 66 </table> 67 <table class="table"> 68 <?php 69 70 $k = 0; 71 foreach($array as $row){ 72 print "<th class='th'>{$j}日</th>"; 73 $k++; 74 $j++; 75 $k % 7 == 0 && $k !== 0 ? print "<tr></tr>" : print ""; 76 } 77 $k = 0; 78 foreach($array as $row){ 79 print "<td><input name='{$i}' class='time' value=''></td>"; 80 $k++; 81 $i++; 82 $k % 7 == 0 && $k !== 0 ? print "<tr></tr>" : print ""; 83 } 84 85 ?> 86 </table> 87 <table class="table"> 88 <?php 89 $l = $i; 90 $l = date('t') - (--$l); 91 92 for($n = 0;$n < $l;$n++){ 93 print "<th class='th'>{$j}日</th>"; 94 $k++; 95 $j++; 96 } 97 98 echo "<tr>"; 99 100 for($n = 0;$n < $l;$n++){ 101 print "<td><input name='{$i}' class='time' value=''></td>"; 102 $k++; 103 $i++; 104 } 105 106 107 ?>
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/20 07:13
2017/11/20 07:51