teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

HTMLの内容をPHPに変更

2020/12/13 03:56

投稿

boron
boron

スコア11

title CHANGED
File without changes
body CHANGED
@@ -11,8 +11,8 @@
11
11
  id='.$reservation['id_reservation'].'で値を渡したいと考えているのですが上手くいかないです。
12
12
  $reservationのvar_dumpの結果は次のようになっています
13
13
  ![イメージ説明](9f22143fcce7dc686ff78fea8afb6e19.png)
14
- 出力されたHTMLのソース
14
+ 出力されたPHPのソース
15
- ```html
15
+ ```php
16
16
  <!DOCTYPE html>
17
17
  <html><head>
18
18
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -34,60 +34,155 @@
34
34
  </head>
35
35
  <body>
36
36
 
37
+ <?php
38
+ session_start();
37
- <!DOCTYPE html>
39
+ require("nav_user.php");
40
+ require('dbconnect.php');
38
41
 
42
+ $year = date('Y');
39
- <html>
43
+ $month = date('m');
40
- <head>
44
+ if(isset($_GET["month"])){
41
- <meta charset="UTF-8">
45
+ $month = $_GET["month"];
46
+ if(isset($_GET["year"])){
47
+ $year = $_GET["year"];
48
+ if(isset($_GET["btn"])){
49
+ if($_GET["btn"] == 'next'){
50
+ $month = $month+1;
51
+ if($month == 13){
52
+ $month = 1;
53
+ $year = $year+1;
54
+ }
55
+ }elseif($_GET["btn"] == 'prev'){
56
+ $month = $month-1;
57
+ if($month == 0){
58
+ $month = 12;
59
+ $year = $year-1;
60
+ }
61
+ }
62
+ }
63
+ }
64
+
65
+ }
42
66
 
43
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
67
+ //linkでやる12月の次の処理、linkにyearを追加
44
- <meta name="viewport" content="width=device-width, initial-scale=1">
68
+ // else{
45
- <!-- <title>施設選択</title> -->
69
+ // $month = date('m');
46
- <link rel="stylesheet" href="css/bootstrap.css">
47
- <script type="text/javascript" src="js/jquery-3.2.1.js"></script>
48
- <script type="text/javascript" src="js/bootstrap.js"></script>
49
- <link href="css/bootstrap.min.css" rel="stylesheet">
70
+ // }
50
- <!-- jQuery読み込み -->
71
+ // echo $month+1;
51
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
52
- <!-- BootstrapのJS読み込み -->
72
+ // exit;
53
- <script src="js/bootstrap.min.js"></script>
54
73
 
74
+
75
+ $reservations = $db->prepare('select * from reservation where year=? and month=?');
76
+
77
+ $reservations->execute(array(
78
+ $year,$month
79
+ ));
80
+ $monthly=[];//予定が空のときに処理
81
+ while($reservation = $reservations->fetch()){
82
+ $monthly[$reservation['day']][] = array($reservation['time1'],$reservation['time2'],$reservation['g_name']);
83
+ }
84
+ // var_dump($reservation);
85
+
86
+ // ksort($monthly);
87
+ // print_r($monthly);
88
+ // print $reservation['time2'];
89
+ // exit;
90
+
91
+ // 一か月分の日付を曜日付きで出力する
92
+ $lastd = 31;//$yearと$monthから計算して求める
93
+ $time = mktime(0, 0, 0, $month + 1, 0, $year);
55
- <style type="text/css">
94
+ $lastd = date('d',$time);
56
- .container{
95
+ //時区間分割を実現する
57
- width:800px;
96
+ $divided=[];
97
+ for ($d=1; $d<= $lastd; $d++){
98
+ if (array_key_exists($d, $monthly)){
99
+ //配列のキーが存在するか調べる(キー、対象の配列)
100
+ //この日に予定があれば、分割していく
101
+ $intv = [[9,21,'']];
102
+ foreach ($monthly[$d] as $yotei){//(対象配列 as その中身)、$yoteiは[x,y,z]
58
- margin:0px auto 0px auto;
103
+ $intv= div($intv, $yotei);
59
104
  }
105
+ $divided[$d] = $intv;//=[x,y,z]
106
+ }else{
107
+ $divided[$d] = [[9,21,'']];
108
+ }
109
+ }
110
+
111
+ //print_r($divided);
112
+ //exit;
113
+ echo '<div id="content">';
114
+ echo '<table border=1>';
115
+ echo '<h2>スケジュール編集</h2> ';
116
+ // echo '<ul class="nav nav-tabs" role="tablist">
117
+ // <li class="nav-item">
118
+ // <a class="nav-link active" id="item1-tab" data-toggle="tab" href="#item1" role="tab" aria-controls="item1" aria-selected="true">野球場</a>
119
+ // </li>
120
+ // <li class="nav-item">
121
+ // <a class="nav-link" id="item2-tab" data-toggle="tab" href="#item2" role="tab" aria-controls="item2" aria-selected="false">テニスコート</a>
122
+ // </li>
123
+ // </ul>';
124
+ echo "<h3>{$year}年{$month}月</h3>";
125
+ echo "<a class='btn btn-info' href='?year=$year&month=$month&btn=prev'>前月</a>";
126
+ echo "<a class='btn btn-info' href='#'>引き継ぐ</a>";
127
+ echo "<a class='btn btn-info' href='?year=$year&month=$month&btn=next'>次月</a>";
128
+ echo '<tr><td></td>';
129
+ for ($h=9; $h<22; $h++){
130
+ echo '<td >', $h, '</td>';
131
+ }
132
+ echo '</tr>';
133
+ for ($d=1; $d<=$lastd; $d++){
134
+ $time = mktime(0, 0, 0, $month, $d, $year);
135
+ $w = date('w',$time);
136
+ $wdays = array('日','月','火','水','木','金','土',);
137
+ $class = '';
138
+ if ($w==0) $class='sun';
139
+ if ($w==6) $class='sat';
140
+ echo '<tr>';
141
+ echo '<td><span class="'.$class.'">', $d,'('. $wdays[$w].')</span>'. '</td>';
142
+ $yotei = $divided[$d];
143
+ foreach ($yotei as $y){//$yotei=$divided[$d]=[x,y,z]
144
+ $y1 = $y[0];//[x,y,z]のx
145
+ $y2 = $y[1];//[x,y,z]のy
146
+ $y3 = $y[2];//[x,y,z]のz
147
+ $colspan=$y2-$y1+1;
148
+ if(!empty($y3)){
149
+ echo '<td colspan="'. $colspan . '"><a href="schedule_add_delete.php?y='.$year.'&m='.$month.'&d='.$d.'&w='.$wdays[$w].'&t1='.$y1.'&t2='.$y2.'&facility='.$f.'&gm='.$y3.'">'.$y3.'</a></td>';
150
+ }else{
151
+ echo '<td colspan="'. $colspan . '"><a href="schedule_add_delete.php?y='.$year.'&m='.$month.'&d='.$d.'&w='.$wdays[$w].'&t1='.$y1.'&t2='.$y2.'">○</a></td>';
152
+ }
60
153
 
61
- </style>
62
- </head>
63
-
64
- <body>
65
- <div class="container">
66
- <nav class="navbar navbar-default">
67
- <div class="container-fluid">
68
- <div class="navbar-header">
69
- <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
70
- <span class="sr-only">Toggle navigation</span>
71
- <span class="icon-bar"></span>
72
- <span class="icon-bar"></span>
73
- <span class="icon-bar"></span>
74
- </button>
75
- <a class="navbar-brand" href="#">○○市施設予約システム</a>
76
- </div>
77
- <ul class="nav navbar-nav navbar-right">
78
- <li><a href="#">橋本 五郎</a></li><li><a href="user_home.php">ホーム</a>&nbsp;</li><li><a href="register.php">会員登録</a>&nbsp;</li><li><a href="facility_search.php">空き照会・申込</a>&nbsp;</li><li><a href="reservation-confirm_cancel.php">予約確認・本申請・取消</a>&nbsp;</li><li><a href="logout.php">ログアウト</a>&nbsp;</li>
79
-
80
- <!-- <li class="dropdown">
81
- <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">予約・セット予約 <span class="caret"></span></a>
82
- <ul class="dropdown-menu">
83
- <li><a href="#">申請</li>
84
- <li><a href="#">確認・キャンセル</a></li>
85
- </ul>
86
- </li> -->
87
- </ul>
88
- </div>
89
- </nav>
90
- </body><div id="content"><table border=1><h2>スケジュール編集</h2> <h3>2020年12月</h3><a class='btn btn-info' href='?year=2020&month=12&btn=prev'>前月</a><a class='btn btn-info' href='#'>引き継ぐ</a><a class='btn btn-info' href='?year=2020&month=12&btn=next'>次月</a><tr><td></td><td >9</td><td >10</td><td >11</td><td >12</td><td >13</td><td >14</td><td >15</td><td >16</td><td >17</td><td >18</td><td >19</td><td >20</td><td >21</td></tr><tr><td><span class="">1(火)</span></td><td colspan="4"><a href="schedule_add_delete.php?y=2020&m=12&d=1&w=火&t1=9&t2=12">○</a></td><td colspan="5"><a href="schedule_add_delete.php?id=y=2020&m=12&d=1&w=火&t1=13&t2=17&facility=&gm=xxxx">xxxx</a></td><td colspan="4"><a href="schedule_add_delete.php?y=2020&m=12&d=1&w=火&t1=18&t2=21">○</a></td></tr><tr><td><span class="">2(水)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=2&w=水&t1=9&t2=21">○</a></td></tr><tr><td><span class="">3(木)</span></td><td colspan="13"><a href="schedule_add_delete.php?id=y=2020&m=12&d=3&w=木&t1=9&t2=21&facility=&gm=西武">西武</a></td></tr><tr><td><span class="">4(金)</span></td><td colspan="13"><a href="schedule_add_delete.php?id=y=2020&m=12&d=4&w=金&t1=9&t2=21&facility=&gm=楽天">楽天</a></td></tr><tr><td><span class="sat">5(土)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=5&w=土&t1=9&t2=21">○</a></td></tr><tr><td><span class="sun">6(日)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=6&w=日&t1=9&t2=21">○</a></td></tr><tr><td><span class="">7(月)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=7&w=月&t1=9&t2=21">○</a></td></tr><tr><td><span class="">8(火)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=8&w=火&t1=9&t2=21">○</a></td></tr><tr><td><span class="">9(水)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=9&w=水&t1=9&t2=21">○</a></td></tr><tr><td><span class="">10(木)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=10&w=木&t1=9&t2=21">○</a></td></tr><tr><td><span class="">11(金)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=11&w=金&t1=9&t2=21">○</a></td></tr><tr><td><span class="sat">12(土)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=12&w=土&t1=9&t2=21">○</a></td></tr><tr><td><span class="sun">13(日)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=13&w=日&t1=9&t2=21">○</a></td></tr><tr><td><span class="">14(月)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=14&w=月&t1=9&t2=21">○</a></td></tr><tr><td><span class="">15(火)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=15&w=火&t1=9&t2=21">○</a></td></tr><tr><td><span class="">16(水)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=16&w=水&t1=9&t2=21">○</a></td></tr><tr><td><span class="">17(木)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=17&w=木&t1=9&t2=21">○</a></td></tr><tr><td><span class="">18(金)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=18&w=金&t1=9&t2=21">○</a></td></tr><tr><td><span class="sat">19(土)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=19&w=土&t1=9&t2=21">○</a></td></tr><tr><td><span class="sun">20(日)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=20&w=日&t1=9&t2=21">○</a></td></tr><tr><td><span class="">21(月)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=21&w=月&t1=9&t2=21">○</a></td></tr><tr><td><span class="">22(火)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=22&w=火&t1=9&t2=21">○</a></td></tr><tr><td><span class="">23(水)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=23&w=水&t1=9&t2=21">○</a></td></tr><tr><td><span class="">24(木)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=24&w=木&t1=9&t2=21">○</a></td></tr><tr><td><span class="">25(金)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=25&w=金&t1=9&t2=21">○</a></td></tr><tr><td><span class="sat">26(土)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=26&w=土&t1=9&t2=21">○</a></td></tr><tr><td><span class="sun">27(日)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=27&w=日&t1=9&t2=21">○</a></td></tr><tr><td><span class="">28(月)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=28&w=月&t1=9&t2=21">○</a></td></tr><tr><td><span class="">29(火)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=29&w=火&t1=9&t2=21">○</a></td></tr><tr><td><span class="">30(水)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=30&w=水&t1=9&t2=21">○</a></td></tr><tr><td><span class="">31(木)</span></td><td colspan="13"><a href="schedule_add_delete.php?y=2020&m=12&d=31&w=木&t1=9&t2=21">○</a></td></tr></table></div></body>
154
+ }
155
+ echo '</tr>';
156
+ }
157
+ echo '</table>';
158
+ echo '</div>';
159
+ ?>
160
+ </body>
91
161
  </html>
162
+ <?php
163
+ //div.phpからコピーしたもの
164
+ function div($intv, $a){
165
+ // $a=[11,12,''] =(div)=> $intv=[[9,10,''],[11,12,'試合'],[13,21,'']]
166
+ $a1 = $a[0];
167
+ $a2 = $a[1];
168
+ $a3 = $a[2];//追加
169
+ $out = [];
170
+ for ($i=0; $i<count($intv); $i++){
171
+ $b1 = $intv[$i][0];
172
+ $b2 = $intv[$i][1];
173
+ $b3 = $intv[$i][2];//追加
92
174
 
175
+ if ($a1 >= $b1 and $a2 <= $b2){
176
+ if ($b1<=$a1-1)
177
+ $out[]=[$b1, $a1-1, $b3]; //$b3を追加
178
+ $out[]=[$a1, $a2, $a3]; //$a3を追加
179
+ if ($a2+1<=$b2)
180
+ $out[]=[$a2+1,$b2, $b3]; //$b3を追加
181
+ }else{
182
+ $out[] = $intv[$i];
183
+ }
184
+ }
185
+ return $out;
186
+ }
187
+ ?>
93
188
  ```