![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
http://income-seed.ck0.net/1000yen/demand.htm
上のページでは、テキストボックスに値を入力しなかった場合、別のエラー画面などに遷移せずに元のページにエラー表示がされます。
これと同じ仕組みを実現したいのですが、その方法論が思いつきませんので、皆様のお知恵をお借りしたいと思っています。よろしくお願いします。
具体的にコードで示して頂けたりすると非常に助かります。
No.4ベストアンサー
- 回答日時:
返信が遅くなりすみません
簡易版ですがサンプルPGを作成しました。NULLチェックと未入力チェックあと簡易版のメアドチェックです。
使用方法等サンプルソースは下記です。
<?php
//宣言
$sample = new CHK_SAMPLE();
//メソッド実行
$error = $sample->CHK_NULL($_POST['name'],$_POST['mail']);
?>
<html>
<head><title>サンプル</title></head>
<body>
<form action="sample.php" method="POST">
<font color="red">
<?php
if($error!="OK")
print $error;
}
?>
</font><br>
<input type="text" name="name">
<input type="text" name="mail">
<?php
if($error!="OK"){//エラーがあるとき
print "<input type=\"submit\" name=\"送信\">";
print "<input type=\"reset\" name=\"リセット\">";
}else{
print "<input type=\"submit\" name=\"送信\">";
}
?>
</form>
</body>
</html>
//ここからクラス
<?php
class CHK_SAMPLE{
private $ERROR_MSG1 = "名前とメールアドレスが未入力です。";
private $ERROR_MSG2 = "名前が未入力です。";
private $ERROR_MSG3 = "メールアドレスが未入力です。";
private $ERROR_MSG4 = "メールアドレスが間違っています。";
private $KEKKA = "OK";//TRUEの場合の戻り値
//NULL・空白チェック・メアドチェック
/*----------------------------------------
引数1:名前
引数2:メールアドレス
戻り値:「OK」メッセージ or エラーメッセージ
----------------------------------------*/
public function CHK_NULL($CNAME,$CMAIL){
if($CNAME!=NULL){
if($CMAIL!=NULL){
//名前・メールアドレスがNULLでない
if($CNAME!=""){
if($CMAIL!=""){
//名前・メールアドレスが空白でない
//メアドチェックも行う
if($this->CHK_MAIL($CMAIL)=="OK"){
return $this->KEKKA;
}else{
return $this->CHK_MAIL($CMAIL);
}
}else{
return $this->ERROR_MSG3;
}
}else{
//メールアドレスも空白
if($CMAIL!=""){
return $this->ERROR_MSG2;
}else{
return $this->ERROR_MSG1;
}
}
}else{
return $this->ERROR_MSG3;
}
}else{
//メールアドレスもNULL
if($CMAIL!=NULL){
return $this->ERROR_MSG2;
}else{
return $this->ERROR_MSG1;
}
}
}
//メアドチェック(簡易)
/*----------------------------------------
引数1:メールアドレス
戻り値:「OK」メッセージ or エラーメッセージ
文字列「*****@******」に一致するか
※「*」は任意の文字列
----------------------------------------*/
public function CHK_MAIL($CMAIL){
if(preg_match("/^[^.]+\@[^.]+$/i", $CMAIL)){
return $this->KEKKA;
}else{
return $this->ERROR_MSG4;
}
}
}
?>
ご回答ありがとうございます。
親切、丁寧にご回答いただき感謝いたします。swqamy様のPG、とても参考になりました。
やはり今回の質問内容を実現するには、FormのActionで元のページに戻すことが前提になるのですね。
勉強になりました。本当にありがとうございました。
No.3
- 回答日時:
[sample.php]
<?php
if($_POST['name']!=""){//POSTで受け取った名前が未入力でない
if($_POST['mail']!=""){//POSTで受け取ったメアドが未入力でない
//画面遷移処理
}else{
$error="メールアドレスが未入力です。";
}
}else{
if($_POST['mail']==""){
$error="名前とメールアドレスが未入力です。";
}else{
$error="名前が未入力です。";
}
}
?>
<html>
<head><title>サンプル</title></head>
<body>
<from action="sample.php" method="POST">
<?= $error ?>
<input type="text" name="name">
<input type="text" name="mail">
<?php
if($error!=""){//エラーがあるとき
print "<input type=\"submit\" name=\"送信\">";
print "<input type=\"reset\" name=\"リセット\">";
}else{
print "<input type=\"submit\" name=\"送信\">
}
?>
</form>
</body>
</html>
回答したPGに不備がありました。
すみません。
修正したコードは↑です。
この回答への補足
クラスを使って同じようなことができるということを聞いたのですが、どのようにすればいいのでしょうか。
初心者の質問で大変申し訳ないですが、よろしければなにかコメントいただければと思います。
No.2
- 回答日時:
[sample.php]
<?php
if($_POST['name']!=""){
if($_POST['mail']!=""){
//画面遷移処理
}else{
$error="メールアドレスが未入力です。";
}
}else{
if($_POST['mail']==""){
$error="名前とメールアドレスが未入力です。";
}else{
$error="名前が未入力です。";
}
}
?>
<html>
<head><title>サンプル</title></head>
<body>
<from action="sample.php" method="POST">
<?= $error ?>
<input type="text" name="name">
<input type="text" name="mail">
<input type="submit" name="送信">
<?php
if($error!=""){
print "<input type=\"submit\" name=\"送信\">";
print "<input type=\"reset\" name=\"リセット\">";
}
?>
</form>
</body>
</html>
簡単ですがこんな感じです。
No.1
- 回答日時:
formで同じページに飛ばして、そこでエラー判定しているのではないでしょうか。
<?php
if($_POST['submit'] != ""){
if($_POST['name'] != "") $error_name = "名前がありません。";
if($_POST['mail'] != "") $error_mail = "メルアドがありません。";
if(($error_name == "" || $error_mail)){
送信完了処理
}
}
?>
<from action="">
<input name="name">
<input name="mail">
<送信ボタン>
</form>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- au(KDDI) 特定の画面を見るとスマホが固まります ご覧頂き有難うございます。 特定のページを見るとスマホが固まり 1 2023/08/21 19:29
- WordPress(ワードプレス) ワードプレスで、投稿一覧ページにタグを表示する方法 投稿につけたタグを、記事一覧ページにもカテゴリと 1 2023/05/10 21:41
- Access(アクセス) Access DTPickerの初期表示月を変えたい 1 2022/08/02 08:55
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/06 13:32
- UNIX・Linux bash環境でのエラー対応をお願い致します。 1 2022/11/26 17:41
- Windows Me・NT・2000 widows xpのエラーで利用ができなくなりました 3 2022/12/21 13:43
- JavaScript [再掲]指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードについて 1 2023/05/10 15:09
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
PHPでクリックするたびに変数を...
-
画面が更新されてもチェックボ...
-
PHPで投票カウンタの作成
-
HTMLで前の画面に戻る時、入力...
-
テキストボックスに初期値を入れる
-
ラジオボタンをsessionで使いたい
-
DBの値をチェックボックスに反...
-
チェックボックス 複数選択
-
チェックボックスを使った複数...
-
パラメーターを隠す
-
現在ラジオボタンのデータベー...
-
チェックボックスによる検索(...
-
配列要素を受ける時
-
フォームボタンを押すたびに数...
-
アップロードの際にファイルパス
-
フォームへの前回入力値をクリ...
-
複数formの使用について
-
Javascript→PHPに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
検索時の選択内容を保持する方法
-
PHPで画像の渡しが上手く行きま...
-
フォームでのリセットを使う方法
-
入力フォーム→確認画面→送信画...
-
PHPでユーザー情報を入力して簡...
-
syntax error, unexpected '}' ...
-
PHPで、ボタンを押すと同じペー...
-
フォームへの前回入力値をクリ...
-
フォームボタンを押すたびに数...
-
Javascript→PHPに...
-
PHPとHTML+Xamppの掲示板で画像...
-
チェックボックスによる検索
-
PHPでCookieを使った訪問回数に...
-
PHPの関数実行
-
DBの値をチェックボックスに反...
-
ラジオボタンをsessionで使いたい
-
【HTML(PHP?)】複数のフォーム...
おすすめ情報