<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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
【お題】引っかけ問題(締め切り10月27日(日)23時)
【大喜利】 「日本で一番高い山は富士山……ですが!」から始まった、それは当てられるわけ無いだろ!と思ったクイズの問題
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
架空の映画のネタバレレビュー
映画のCMを見ていると、やたら感動している人が興奮で感想を話していますよね。 思わずストーリーが気になってしまう架空の感動レビューを教えて下さい!
-
formで送信したPOSTデータの削除について
PHP
-
フォーム送信後の更新ボタンでも$_POST変数が初期化されない
PHP
-
フォームでのリセットを使う方法
PHP
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
$_POST['hoge']のデータをフラ...
-
PHPでバーコード読み取りって・...
-
phpのカウンタのリセット方法
-
チェックボックスによる検索(...
-
laravelを利用してコントロール...
-
MySQL,PHPのリロードによる二重...
-
ゼロ除算
-
PHPからHTMLへの変数の受け...
-
ラジオボタンをsessionで使いたい
-
PHPでクリックするたびに変数を...
-
サーバ上でGETはできるがPOSTが...
-
php+mysqlでの重複チェックにつ...
-
<input type="hidden" >で配列...
-
チェックボックス 複数選択
-
チェックボックスによる検索
-
HTMLで前の画面に戻る時、入力...
-
現在時刻を反映させた時刻のプ...
-
VBA で、スペースを含むファイ...
-
プログラムの複製(VB.net)
-
PHPで画像の渡しが上手く行きま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォーム送信後の更新ボタンで...
-
phpで、フォームのラジオボタン...
-
テキストリンクをPOST送信したい
-
ボタンをクリックでPHP文を実行
-
セッションを使わずに遷移先画...
-
$_POST['hoge']のデータをフラ...
-
フォームで作った送信ボタンが...
-
Submit(送信ボタン)を押した...
-
ローカルにあるhtmlのフォーム...
-
PHPでファイルアップロード時に...
-
PHPの質問:フォームから受け取...
-
特殊文字を含むフォームデータ...
-
GETとPOST以外のデータの渡し方...
-
なぜ、unexpected T_VARIABLEに...
-
JavaScript変数をPHPへ渡す
-
フォームのPOST情報が渡らない?
-
チェックボックスのチェック済...
-
PHP+JSのメールフォームで、選...
-
同ページへの通信
-
管理パスワードによる認証
おすすめ情報