
<form method="post" action="">
<input type="text" name="hoge1" value="$_POST['hoge1']">
<input type="text" name="hoge2" value="$_POST['hoge2']">
<input type="submit" value="送信">
</form>
データ送信してもフォーム内にデータが残るようにしたのですが、HTMLをこのままにして、PHPの方で$_POST['hoge']の中身を消去したいのですが、どのようにすればいいでしょうか?
記入漏れの時にはそのデータが残り、すべてを記入してデータ送信後は再び何も書かれていない状態にしたいのです。できれば、Javascriptを使わないでやりたいと考えています。よろしくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>条件付きで決めたいのです。
つまり、フォームに記入漏れがない場合は>送信してクリアし、記入漏れがある場合は送信しないで引き継ぐのです。
あ、わかりました。「送信」という言葉はフォーム→スクリプトを指すのが普通なのですが、この場合はスクリプトからDBへのinsertなどのことですね。
>(ちなみに、その入力データはそこで確認することができます。)
というのは記入漏れがあった場合だけ確認可能ということですね。こちらも了解しました。
#インタフェイスの良否は本題じゃないので、これまでにします。
本題については、No.2のinu2さんの方法でOKだと思います。どのみちPOSTされた値は「そのまま」では使わない(使えない・使うべきではない)でしょうしね。
この回答への補足
色々と有難うございました。
どうやら私の環境では、POSTの値はスクリプトの最後で削除しても、リロードされた後も残ってしまうようです。
アドバイス、ありがとうございます。
スクリプトが長くなってきて、変数を整理するのが難しくなってきました。
(どの変数は引き継いでいて、どの変数は新規の値が入っているとか。)
また試してみます。
No.3
- 回答日時:
>記入漏れの時にはそのデータが残り、すべてを記入してデータ送信後は
>再び何も書かれていない状態にしたいのです。
>入力データを送信した後、OK画面を出すことなく、また同じ画面に戻る
>ようになっています。
>(ちなみに、その入力データはそこで確認することができます。)
>ですから、$_POST['hoge']の値は(条件付きで)そのまま引き継がなく
>てはいけないのです。
結局、クリアしたいのですか?引き継ぐのですか?このインタフェイスでは記入漏れで受付不可だったのか、ちゃんと受け付けられたのか使用者には判断が出来にくいと思いますけど。(条件付きで)という条件とかどういうものでしょうか?せめて「受付OK」→「所定の処理」→「そのことを伝える画面(戻るための自分へのリンクつき)を表示してexit」くらいは簡単にできるのでは?それとも「そういう仕様」なんでしょうか?
> クリアしたいのですか?引き継ぐのですか?
条件付きで決めたいのです。つまり、フォームに記入漏れがない場合は送信してクリアし、記入漏れがある場合は送信しないで引き継ぐのです。
> このインタフェイスでは記入漏れで受付不可だったのか、ちゃんと受け付けられたのか使用者には判断が出来にくいと思いますけど。
入力と出力が同じ画面にあると考えてください。使用者にはそれが受け付けられたということが送信後の画面(同一画面)でわかるわけです。
No.2
- 回答日時:
ブラウザで入力
↓
---------------------------hoge.php内の処理
$hoge1 = $_POST['hoge1'];
$hoge2 = $_POST['hoge2'];
$message = '';
↓
if($hoge1と$hoge2が両方とも記入されているか)
{
//保存するなどの処理
$message = '保存しました';
$hoge1='';
$hoge2='';
}
↓
ptint $message;
print '<input type="text" name="hoge1" value="'.$hoge1.'" />';
print '<input type="text" name="hoge2" value="'.$hoge2.'" />';
(formタグは省略しています)
とかでいいんじゃないでしょか?
スーパーグローバル(_POSTとか_GET)を操作することは基本的にしないほうが良いですよ。
ご回答ありがとうございます。
何故だか分かりませんが、(PHP内で)条件分岐をした後、その値($_POST['hoge'])を消しても
まだどこかのキャッシュかメモリ媒体に残って読み込まれてしまうのです。
スーパーグローバルを操作することは控えた方がよいとのことでした。
理由はよく分かりませんが、ローカルな変数を使った方が分かりやすく安全ということでしょうか?
今度ご指摘の通り、スーパーグローバルをローカル変数に置き換えた上で、その値を消して読み込んでみようと思います。
No.1
- 回答日時:
普通、POSTされたデータに不具合があって再入力の場合にはこういうhtmlを出力しますが、データOK→処理のあとは別のhtmlを返しませんか?入力フォームを再度返すと受け取られたのかどうかも不安ですし・・。
#「登録しました」とか「送信しました」とかだけの画面など
まぁ、$_POST['hoge1'] = ""; でもunset($_POST)でもクリア出来るとは思います。
ご回答ありがとうございます。
入力データを送信した後、OK画面を出すことなく、また同じ画面に戻るようになっています。
(ちなみに、その入力データはそこで確認することができます。)
ですから、$_POST['hoge']の値は(条件付きで)そのまま引き継がなくてはいけないのです。
$_POST['hoge']="";は試してみましたが、値はそのまま引き継がれてしまいました。
unset($_POST)は知りませんでした。今度試してみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPでURLにジャンプするには?
-
ボタンをクリックでPHP文を実行
-
VBSのIEオブジェクトでフ...
-
phpで、フォームのラジオボタン...
-
PHP 入力フォームにて半角スペ...
-
送信ボタンでカウントアップ
-
テキストリンクをPOST送信したい
-
特殊文字を含むフォームデータ...
-
ページを切り替えずにphpに値を...
-
PHPのエラーの解消法について教...
-
$_POST['hoge']のデータをフラ...
-
HTMLで前の画面に戻る時、入力...
-
フォームボタンを押すたびに数...
-
フォームへの前回入力値をクリ...
-
phpでチェックボックスでの値の...
-
アップロードの際にファイルパス
-
POSTデータのNAME属性をVALUEに...
-
データベースにある値でリスト...
-
PHPで、ボタンを押すと同じペー...
-
【PHPチェック】ラジオボタンが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPでURLにジャンプするには?
-
セッションを使わずに遷移先画...
-
phpで、フォームのラジオボタン...
-
フォーム送信後の更新ボタンで...
-
テキストリンクをPOST送信したい
-
PHPのエラーの解消法について教...
-
フォームにダブルクォーテーシ...
-
ボタンをクリックでPHP文を実行
-
リンク先のフォームに自動的に...
-
変数が表示されない。
-
フォームのPOST情報が渡らない?
-
htmlファイルからphpファイルへ...
-
phpファイルの命令実行順番につ...
-
PHPの質問:フォームから受け取...
-
なぜ、unexpected T_VARIABLEに...
-
リセットボタンとエラー画面
-
PHPでファイルアップロード時に...
-
$_POST['hoge']のデータをフラ...
-
PHPのローディング
-
GETとPOST以外のデータの渡し方...
おすすめ情報