2011-01-04 27 views
0

はい、プロフィールページの編集が少しあります。index.php?mode=profile editprofileフォームのユーザ名を例として取ることができます。ユーザー名は既にユーザー名フィールドにあります。だから私は "Peter"から "Tom"に変わり、saveを押す。PHP:同じページにアクションを作成し、リフレッシュするまで同じ状態を表示します。

アクションは?mode=profile&edit=trueです。だから今私はそれを保存したときにピーターからトムにdbの列を更新しました。しかし、リフレッシュ(またはf5)を押すと "Tom"が表示されるまで、このフィールドには値 "Peter"が保持されます。それはデータベースの何かで更新されていないように、それはしましたが、それはまだ次のリフレッシュまでピーターを示して..それはキャッシュのように、それはキャッシュが何もない?

これに関する助力?それは同じ "ページ" /ファイル上にあるからですか?何ができるのですか

+0

小さなコードスニペットが役に立ちます –

答えて

0

私はデータを最初に取り出し、フォームに入れてからデータベースの内容を更新すると思います。フォームを送信するときは、まずデータベースの内容を更新する必要があります。フォームのフェッチと作成は次のステップでなければなりません。

0

ほとんどの場合、プロファイルを変更する前にページをレンダリングしている可能性があります。レンダリングする前にプロファイルの変更を処理していることを確認します(つまり、ページを表示するSELECT文の前に更新値へのデータベース呼び出しをすべて配置する必要があります)。

0

フォームの各入力フィールドにできることは、それぞれのフィールドのポスト値をエコーするだけです。例えばのために

- あなたがキャッシュから任意のフィールド、その値が表示されますを投稿していない場合は、この方法では

<input type="text" name="username" value='<?php echo $_POST['username']?>' /> 

-

は、ユーザ名フィールドの例を取ることができます。

上記の例では、投稿データを消去していないため、実際のシナリオでは、清掃済みの投稿データ を使用していることを確認してください。

+1

特に、表示する前にそのデータを消去していないため、悪い考えがあります。 – fredley

+0

@fredley:私はクリーニング部が標準で、@ Karemによって行われると仮定しました。とにかくそのメモを使って私の解決策を修正しました。 – Alpesh

+0

などのクリーニング? – Karem

0

HTTPにはPOSTとGETという2つの方法があります。 ?param =で始まるURLでは、実際にGETを使用しています。フォーム処理が冪等問である(すなわち、ページの内容が問合せによって変更されていない)場合にのみ、 "GET"を使用する必要があります。

フォームでデータを変更する場合は、POSTメソッドを使用する必要があります。

関連する問題