0

以下のフォームには、テキストフィールド、ドロップダウン、および選択ボックスのさまざまな要素を含めることができます。これにより、ユーザーは自分のプロファイルを更新できます。MySQLフィールドを更新するプロセスは、フォームの送信後に実行されています。

<form method="post">
My Name: <input name="myname" type="text" value="<?php echo $_SESSION['SESS_MY_NAME']; ?>" /><br />
My Email: <input name="email" type="text" value="<?php echo $_SESSION['SESS_EMAIL']; ?>" /><br />
    <input type="submit" name="Submit" value="Update" />

<?php
if (isset($_POST['Submit'])) {
    // MySQL update
    ;
    ;
    ;
    $result=mysql_query($sql);
  }

// if successfully updated, make form refresh. 
  if($result){
    ;
    ;
    ;
  }
?> 
</form>

フォームのみを更新して、ユーザーが同じページにとどまり、行った変更を確認できるようにします(つまり、「正常に更新されたら、フォームを更新します」というコードのコメントの下に何を入力する必要がありますか? )。

header("location: samepage.php");HTMLコードが多すぎて使用できません。

助けに感謝します、

4

3 に答える 3

2

isset($_POST['submit'])チェックを一番上に移動します。

現在の(意図された)プロセスは次のとおりです。

  1. DB / Session/etcからフォームデータを取得します。
  2. HTMLとして表示
  3. ユーザーがフォームを送信
  4. 手順1/2を繰り返します
  5. DBにデータを書き込む
  6. 強制更新
  7. もう一度1/2を繰り返します

このチェックを一番上に移動すると、プロセスは次のように変更されます。

  1. DBからフォームデータを取得する
  2. HTMLとして表示
  3. ユーザーがフォームを送信
  4. DBにデータを書き込む
  5. 1/2を繰り返します(更新された情報を取得して正しく表示されます)。

これはあなたがそれをすることができる絶対に最も簡単な方法です。セッションの投稿/リダイレクト/取得または更新は考慮されないため、複数のDB読み取りは不要です。

于 2012-08-16T19:33:01.440 に答える
0

jQuery AJAXを使用してフォームを送信および検証し、選択したdiv要素に結果を出力してみませんか。nettuts+で入手可能な詳細

于 2012-08-16T19:34:50.997 に答える
0

とても役に立ちました。すごい。

ありがたいことに、他の誰も答えを持っていないようだったので、私はいくつかの激しいグーグルの後に自分でこれを解決することができました。同じことを達成しようとしている人は、CF7フォーム構成の「追加設定」セクションに次のコードを追加するだけです。

on_sent_ok: "location =' http ://domain.com/contact '; "

URLをフォームページとプレストのURLに置き換えるだけで、フォームが送信されると自動的にそのページに更新されます。

于 2015-11-19T09:13:09.220 に答える