- 締切済み
リセットボタンとエラー画面
PHPを始めて1週間ほどのド初心者です。 本を買って勉強中ですが、本やネットでも調べてもわからないので 質問させて頂いています。 あるところからサンプルを引っ張ってきてフォームを作るところです。↓ session_start(); $errors = 0; if(!isset($_SESSION["form1"])){ $_SESSION["form1"] = "input"; $error["name"]["message"] = "<br><font color=\"#FF9900\">《必須》</font>"; $error["birt"]["message"] = ""; $error["sexx"]["message"] = "<br><font color=\"#FF9900\">《必須》</font>"; $name1 = ""; $name2 = ""; $sex = ""; $year = ""; $mon = ""; $day = ""; }else{ $name1 = stripslashes( $_POST["name1"] ); $name2 = stripslashes( $_POST["name2"] ); if((0==strlen($name1))&&(0==strlen($name2))) { $error["name"]["message"] = "<br><font color=\"#FF0000\">《名前が未入力です》</font>"; $errors++; } elseif(0==strlen($name1)) { $error["name"]["message"] = "<br><font color=\"#FF0000\">《性が未入力です》</font>"; $errors++; } elseif(0==strlen($name2)) { $error["name"]["message"] = "<br><font color=\"#FF0000\">《名が未入力です》</font>"; $errors++; } else { $error["name"]["message"] = ""; } $year = $_POST["year"]; $mon = $_POST["mon"]; $day = $_POST["day"]; if( (($year<1900)||(date("Y")<$year)) || (($mon<1)||(12<$mon))|| (($day<1)||(31<$day)) ) { $error["birt"]["message"] = "<br><font color=\"#FF0000\">《生年月日が無効です》</font>"; $errors++; } else { $error["birt"]["message"] = ""; } $sex = $_POST["sex"]; if(!isset($_POST["sex"])) { $error["sexx"]["message"] = "<br><font color=\"#FF0000\">《性別が未選択です》</font>"; $errors++; } else { $error["sexx"]["message"] = ""; } if(0 == $errors){ $_SESSION["form1"] = "checked"; } } ?> ~~~~~~~中略~~~~~~~~ echo "<tr><td colspan=2 align=center><input type=submit name=submit value=\"申 込\"> \n". "<input type=reset name=cancel value=\"クリア\"></td></tr>\n". "</table> ~~~~~~~以降略~~~~~~~ 配布されているサンプルなのでこのままUPすれば正常に動きます。 フォームに何も入力しないで送信ボタンを押すとエラー表示されます。 何か入力をしてリセットを押すと、入力された値はリセットされて消えますが、 エラー表示がそのままになってしまいます。 つまり、エラー表示されたままなので、これをリセットボタンを押すことにより 初期の(エラー表示されていない)状態に戻したいのです。 $reset = true; などの例文を拝見しても難しくて解決できません(T-T) 何か良い方法があったら教えて下さい。 宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
>リセットボタンを押すことにより >初期の(エラー表示されていない)状態に戻したいのです htmlにおけるリセットボタンとは、そのhtmlを開いた後に 変更した要素を元にもどすことなので、htmlを開いた時点で 設定されているものはリセットの対象とはなりません。 そう言う場合はリセットではなく、単にその文書をナンの パラメータもつけずに開くことで実現できるとおもいます
補足
早速の回答ありがとうございます。 パラメータをつけずに開くと言うのは、具体的にどのような記述になるのでしょうか? 調べ方が悪いのか、例文すら見つける事が出来ませんでした。 よろしくお願いします。