お世話になります。
今カレンダーアプリ作成しています。
日付のボタンをクリックすることでリンクしているページ(./day.php)にformメソッドでクリックした日の日付のデータを送信したいと考えています。
今までに行なったこと
php
1echo "<a href = \"./day.php\"><button type='button' class='btn btn-primary btn-lg btn-block'>$d<br /></button></a>";
このbuttonタグをformタグでくくったりしたのですが、それでは画面遷移しませんでした。
全てのコードになります。
php
1<?php 2//データベース接続情報 3$dsn='mysql:dbname=green;host=localhost;charset=utf8'; 4$user='root'; 5$password='root'; 6 7//データベース接続開始 8$dbh = new PDO($dsn,$user,$password); 9$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 10 11 12//データベース選択 13$sql='SELECT * FROM schedule LEFT OUTER JOIN customer ON schedule.customer_id = customer.customer_id ORDER BY ID ASC'; 14$stmt=$dbh->prepare($sql); 15$stmt -> bindParam(':id', $id, PDO::PARAM_STR); 16$stmt->execute(); 17//fetchAllで全てのデータを配列化 18$data = $stmt->fetchAll(PDO::FETCH_ASSOC); 19/* 20print"<pre>"; 21print_r($data); 22print "</pre>"; 23*/ 24 25 26 $today = date('Y-m-d'); 27 28//print_r($id); 29 30 31?> 32<!doctype html> 33<html lang="ja"> 34 <head> 35 <!-- Required meta tags --> 36 <meta charset="utf-8"> 37 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 38 39 <!-- Bootstrap CSS --> 40 <link rel="stylesheet" href="../css/bootstrap.min.css" > 41 <link rel="stylesheet" href="../css/all.css"> 42 <link rel="stylesheet" href="style.css" > 43 44 <title>イグラングリーン 月間</title> 45 </head> 46<body> 47 48 49 50 <table border="1"> 51<?php 52 53// 上のコードは、次のコードと同じ意味です。 54$y = isset($_REQUEST['y']) ? $_REQUEST['y'] : date("Y"); 55$m = isset($_REQUEST['m']) ? $_REQUEST['m'] : date("m"); 56 57 58 59 60 61//受けとったrequestが現在の年、月、日と同じならば変数を代入する 62 63//print_r($today); 64//print_r($request); 65 // 1日の曜日を取得。mktimeは時・分・秒・月・日・年の順に表記 66 $wd1 = date("w", mktime(0, 0, 0, $m, 1, $y)); 67 68 // 年とりあえず同じ年 69 $prevY = $nextY = $y; 70 71 // 一ヶ月前。1より小さければ12にして1年下げる。 72 $prevM = $m - 1; 73 if($prevM < 1) { 74 $prevM = 12; 75 $prevY--; 76 } 77 // 一ヶ月後。12より大きければ1にして1年上げる。 78 $nextM = $m + 1; 79 if($nextM > 12) { 80 $nextM = 1; 81 $nextY++; 82 } 83 84 85 if($m < 12){ 86 $next = $m + 1; 87 } 88 else{ 89 $next = 1; 90 } 91 92 93//EOMはechoを非表示にする 94 print <<< EOM 95 96 97 <h1>{$y}年{$m}月<span class="arrow"><i class="fas fa-angle-left"></i><a href="?y={$prevY}&m={$prevM}" />«</a><i class="fas fa-angle-right"></i></span><a href="?y={$nextY}&m={$nextM}" />»</a></h1> 98 <table class="table table-bordered"> 99EOM; 100?> 101<thead> 102 <tr> 103 <th scope="col">日</th> 104 <th scope="col">月</th> 105 <th scope="col">火</th> 106 <th scope="col">水</th> 107 <th scope="col">木</th> 108 <th scope="col">金</th> 109 <th scope="col">土</th> 110 </tr> 111 </thead> 112<?php 113 114// その数だけ空白を表示 115for ($i = 1; $i <= $wd1; $i++) { 116echo "<td> </td>"; 117} 118 119 120//日付に1を代入 121$d = 1; 122 123while (checkdate($m, $d, $y)) { 124 125 126 127 echo "<td>"; 128 129 130 //日付表示 131 echo "<a href = \"./day.php\"><button type='button' class='btn btn-primary btn-lg btn-block'>$d<br /></button></a>"; 132 foreach ($data as $value) { //入力回数分繰り返し 133 //echo $value['request']; // 多次元配列の扱い →(略) 134 $datetime = $value['request']; 135 $datetime1 = explode(' ', $datetime); 136 $date = explode('-', $datetime1[0]); 137 $year = $date[0]; 138 $month = $date[1]; 139 $day = $date[2]; 140 141 142 if ( $d == $day && $m == $month && $y == $year ) { 143 // カレンダー日付と入力値が一緒ならボタンを表示 144 echo "<a href = \"http://yahoo.co.jp\"><button>{$value['name']}</button></a><br />"; 145 146 147 } 148} 149 150echo "</td>"; 151 152 153 // 今日が土曜日の場合は… 154 if (date("w", mktime(0, 0, 0, $m, $d, $y)) == 6) { 155 // 週を終了 156 echo "</tr>"; 157 158 159 // 次の週がある場合は新たな行を準備 160 if (checkdate($m, $d + 1, $y)) { 161 echo "<tr>"; 162 } 163} 164 165 166//インクリメント 167$d++; 168} 169 170 171 172// 最後の週の土曜日まで移動 173$wdx = date("w", mktime(0, 0, 0, $m + 1, 0, $y)); 174for ($i = 1; $i < 7 - $wdx; $i++) { 175 echo "<td> </td>"; 176} 177 178?> 179 </tr> 180 </table> 181</body> 182</html>
同じような考えでなくても何とか次ページで、formでデータを受け取りたいのですが、どのような方法があるのでしょうか?
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/14 08:54
2018/10/14 14:29