カレンダー型予約システムその1

ぼちぼち作りかけてます。
Yahooトラベルとか楽天トラベルみたいなもの。カレンダーの日付クリックしたら予約画面。
でも日付はselectであとから変えられるとか。

まず、カレンダーだ。いちから作るべきなんだけどちょっと手抜きしてレッツPHPさんところの流用させてもらう。

日付リンクをクリックで予約画面に遷移。

getで値渡してるけど、postに変えた方がいいな。それは後でできるとして。

こういう風にしたかった。
printfで月日は2桁に揃える、と。
ソース

<?php
//dateはyyyymmddの8桁の数字
$date=$_GET['date'];

if($date != null){
$getyear=(str_split($date,4)); // 分解数を指定
$getm_d=(str_split($getyear[1],2));
print "$getyear[0]年 $getm_d[0]月 $getm_d[1]日<br><br>";


$year=$getyear[0];
$month=$getm_d[0];
$day=$getm_d[1];


echo <<<EOT
<form method="POST" action="">
<select name="year">
EOT;
$nextyear=$year+1;
echo <<<EOT
<option value="$year" selected>$year
<option value="$nextyear" >$nextyear
</select>年
<select name="month">
EOT;
if($month==01){
    print "<option value=\"$month\" selected>$month";
    for($i=2;$i<=12;$i++){
        printf("<option value=\"%02d\">%02d",$i,$i);
    }
    }
    else{
    for($i=1;$i<$month;$i++){
             printf("<option value=\"%02d\">%02d",$i,$i);
    }
    print "<option value=\"$month\" selected>$month";
    $nextmonth=$month+1;
    for($i=$nextmonth;$i<=12;$i++){
             printf("<option value=\"%02d\">%02d",$i,$i);
    }
}
echo <<<EOT
</select>月
<select name="day">
EOT;
if($month==01){
    print "<option value=\"$day\" selected>$day";
    for($i=2;$i<=31;$i++){
        printf("<option value=\"%02d\">%02d",$i,$i);
    }
    }
    else{
    for($i=1;$i<$day;$i++){
             printf("<option value=\"%02d\">%02d",$i,$i);
    }
    print "<option value=\"$day\" selected>$day";
    $nextday=$day+1;
    for($i=$nextday;$i<=31;$i++){
             printf("<option value=\"%02d\">%02d",$i,$i);
    }
}
echo <<<EOT
</select>日
<input type="submit" value="送信">
 <input type="reset" value="取消">
</form>
EOT;

}

?>

道は長いなー。フォームから作ってますけど。
根本的に、どんなデータの型が必要で…とか全然考えて作ってないので髪に書き出して整理しないと。
sqlでやるつもりだしねー