cookieを使ったカレンダーの作り方 - PHPプロ!Q&A掲示板
教えてください。」と書き込みしたものです。
先日とほとんど同じ内容の質問かもしれないので
もしルールに反した書き込みに該当するようでしたら
申し訳ありません。
下記のコードでチェックボックス付カレンダーをつくりました。
やりたいこと
2010年12月21日にチェックをつけて、
画面の『翌月』をクリックして2011年1月5日に
チェックをつけて「確定」ボタンをおしたら
post_calender3.phpに2010年12月21日と
2011年1月5日が表示されるようにしたいです。
coockieを使うと良いらしいことは
教えていただいたのですが、マニュアルを見ても
今回の場合どのようにcoockieを使ったコードを
書けばよいのか、分かりません。
本当に恐縮ですがどのようにすればよいのか
教えていただけませんでしょうか?
よろしくお願いいたします。
ちなみにクッキーにこだわっているわけではないので
セッションなんかでできる方法あったら教えてください。
- calender.php
- <html>
- <body>
- <form action="post_calender3.php" method="post">
- //年月日取得
- $year = date("Y");
- $month = date("n");
- $day = date("j");
- //先月、来月をクリックした時の処理
- if (is_null(@$_GET["year"])){
- $year = date("Y");
- $month = date("n");
- $day = date("j");
- }else{
- $year =@$_GET["year"];
- $month =@$_GET["month"];
- $mktime = mktime(0,0,0,$month,1,$year);
- }
- //カレンダーを表示する
- //先月の場合
- if($month==1){
- $pre_year = $year-1;
- $pre_month = 12;
- }
- else{
- $pre_year = $year;
- $pre_month = $month-1;
- }
- //来月の場合
- if($month==12){
- $next_year = $year+1;
- $next_month = 1;
- }
- else{
- $next_year = $year;
- $next_month = $month+1;
- }
- //月の日数取得
- $countdate = date("t",$mktime);
- //曜日の配列を作る
- $weekday = array("日","月","火","水","木","金","土");
- print "<a href=?year=$pre_year&month=$pre_month>".先月."</a>";
- print "<caption>".$year."年".$month."月</caption>";
- print "<a href=?year=$next_year&month=$next_month>".翌月."</a>";
- print '<table border="1">';
- //曜日セルタグ設定
- $i = 0;
- while ($i<=6){
- print "<th>".$weekday[$i]."</th>";
- $i++;
- }
- //行の変更
- print "</tr>";
- print "<tr>";
- //1日(ついたち)の曜日を数値で取得
- $first_weekday = date("w",mktime(0,0,0,$month,1,$year));
- //1日(ついたち)の曜日まで空白埋め
- $i =0;
- while($i< $first_weekday){
- print "<td> </td>";
- $i++;
- }
- //今月の日付が存在している間ループする
- for ($day = 1; $day <= $countdate; $i++,$day++){
- //土曜日まできたらカウント値($i)を0に戻して行を変更
- if($i>6){
- $i=0;
- print "</tr>";
- print "<tr>";
- }
- print "<td>".$day."<input type='checkbox' name='day[]'value=$day>"."</td>";
- }
- print '</table>';
- <br>
- <input type="submit" value="確定">
- </form>
- </body>
- </html>
- post_calender3.php
- foreach ($_POST["day"] as $day){
- print $day."<br>";
- }
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。





ページのトップへ


SQLインジェクション対策は時と場合で使う関数が変わります。その時にあったものを使いましょう。