• ベストアンサー

PHPメールフォームについて

下記のページを作成しているのですが、 ページを開いた時点で『第一希望-日』~『第三希望-日』に 現在の年月日が出てきてしまいます。 空白にしたいです。 ページを開いた時点では何も表示させないようにするには どのようにしたらよろしいでしょうか。 そして第一希望日を選ばずに『確認画面に進む』を押したときに エラーとさせたいです。 このページは、メールフォームを配布しているサイトから頂きました。 以上、基本的なことで申し訳ありませんが、 ご教授のほど宜しくお願いします。 http://kunaku.com/reserve/index.php

質問者が選んだベストアンサー

  • ベストアンサー
  • liv2007
  • ベストアンサー率81% (378/464)
回答No.3

スマートじゃないかもしれませんが、次の修正をすると 希望の動作で問題なく動作します。 変更が多いのでそのまま貼り付けます。 1.「function selectDateObject」の処理を次の物に そっくり変更します。 (※「lib」→「lib.php」の199行目以降) ※この処理の次にある「function viewset」に変更は ありませんので、そのまま残しておいてください。 *********ここから********* function selectDateObject($Ynm,$Mnm,$Dnm,$Pys,$Pms,$Pds,$tabind){ global $LANG; $Gys = date("Y",time()); $GysEnd = $Gys + 5; $Gms = date("m",time()); $Gds = date("d",time()); $acscset = $acsc; $str = '<select name="'.$Ynm.'" class="inp4" tabindex="'.$tabind.'01">'."\n"; for($i1=2009;$i1<$GysEnd;$i1++){ if($Pys && $Pys != "----"){ if($Pys == $i1){ $str .= '<option value="'.$i1.'" selected="selected">'.$i1.'</option>'."\n"; }else{ $str .= '<option value="'.$i1.'">'.$i1.'</option>'."\n"; } }elseif($i1 == 2009){ $str .= '<option value="----" selected="selected">----</option>'."\n"; $str .= '<option value="'.$i1.'">'.$i1.'</option>'."\n"; }else{ $str .= '<option value="'.$i1.'">'.$i1.'</option>'."\n"; } } $str .= '</select> '.$LANG['inp_year'].' <select name="'.$Mnm.'" class="inp2" tabindex="'.$tabind.'02">'."\n"; for($i2=1;$i2<13;$i2++){ if($Pms && $Pms != "--"){ if($Pms == $i2){ $str .= '<option value="'.$i2.'" selected="selected">'.$i2.'</option>'."\n"; }else{ $str .= '<option value="'.$i2.'">'.$i2.'</option>'."\n"; } }elseif($i2 ==1){ $str .= '<option value="--" selected="selected">--</option>'."\n"; $str .= '<option value="'.$i2.'">'.$i2.'</option>'."\n"; }else{ $str .= '<option value="'.$i2.'">'.$i2.'</option>'."\n"; } } $str .= '</select> '.$LANG['inp_month'].' <select name="'.$Dnm.'" class="inp2" tabindex="'.$tabind.'03">'."\n"; for($i3=1;$i3<32;$i3++){ if($Pds && $Pds != "--"){ if($Pds == $i3){ $str .= '<option value="'.$i3.'" selected="selected">'.$i3.'</option>'."\n"; }else{ $str .= '<option value="'.$i3.'">'.$i3.'</option>'."\n"; } }elseif($i3 == 1){ $str .= '<option value="--" selected="selected">--</option>'."\n"; $str .= '<option value="'.$i3.'">'.$i3.'</option>'."\n"; }else{ $str .= '<option value="'.$i3.'">'.$i3.'</option>'."\n"; } } $str .= '</select> '.$LANG['inp_day']."\n"; return $str; } *********ここまで********* 2.次に「index.php」を変更します。 「//Error Check indispensable.」の最後(91行目)に次の 1行を追加します。 elseif($fmFval['hiss'] == 1 and ($F[$fname.'_y'] == "----" || $F[$fname.'_m'] == "--" || $F[$fname.'_d'] == "--") and $fmFval['type'] == "date"){ $ERR = 1; $E[$fname] = '<span class="'.$errorClass.'">'.$fmFval['titl'].$LANG['errNotSelect'].'</span><br />'; } 3.次に、209行目(※上記追加後は210行目)を以下に 変更します。 $V[$pname] = $points.$E[$pname].selectDateObject($pname.'_y',$pname.'_m',$pname.'_d',$F[$pname.'_y'],$F[$pname.'_m'],$F[$pname.'_d'],$fmPkey)."\n"; ※上は「$V[$pname] = $points」の後ろに「.$E[$pname]」を追加しています。 4.最後に「lib」→「setting.php」で項目の設定をします。 $FORM[9]['titl'] = "第一希望"; $FORM[9]['name'] = "dat1"; $FORM[9]['type'] = "date"; $FORM[9]['hiss'] = 1; $FORM[9]['clss'] = "input-m"; $FORM[11]['titl'] = "第二希望"; $FORM[11]['name'] = "dat2"; $FORM[11]['type'] = "date"; $FORM[11]['hiss'] = 0; $FORM[11]['clss'] = "input-m"; $FORM[12]['titl'] = "第三希望"; $FORM[12]['name'] = "dat3"; $FORM[12]['type'] = "date"; $FORM[12]['hiss'] = 0; $FORM[12]['clss'] = "input-m"; ※設定ファイルの説明通り「hiss」を1にすると必須 になります。 ※項目の番号と「titl」、「name」等は、それぞれ重複 しないように注意してください。

その他の回答 (2)

回答No.2

recubeformを見させていただきましたが、 日付選択用の関数は、lib/lib.php内の、selectDateObjectのようです。 こちらの最初のほうで、現在時刻を算出して、取得してます。 ですのでここのスクリプトを修正すればよいと思いますが、単純にコレを修正してしまうと、別の項目で日付選択を行うときにも同様の挙動を行うようになってしまうのと思いますので、一度作者さんにお問い合わせされたほうがよろしいかと思います。 もしくは、Javascriptで制御するという方向も考えられますが、コレについてもJS部分をフルスクラッチする形になるので、若干重い内容になりますが・・・

  • Suzi
  • ベストアンサー率38% (130/334)
回答No.1

セレクトタグのところで <option selected value=""></option> とすればどうですか?

関連するQ&A