0

URL パラメーターを使用して、特定のアクションとリダイレクトの後に結果メッセージをトリガーするアプリケーションがあります。フローの例は次のとおりです。

1. User fills out form and clicks "Update"
2. [PHP code to update DB]
3. header('Location: [next-page.php]?message=1')
4. [PHP code on checks DB for the text of message id #1 and echo the message, (e.g. "Update successful!")]

これは最初はうまく機能しますが、いくつかの問題があります。URL パラメーターはメッセージが表示された後も残るため、ページが更新された場合、または後でユーザーがクリックしてそのページに戻った場合、メッセージが再び表示されます。上記のことを行う方法を探していますが、メッセージは初めて表示します。結果メッセージごとに、既に表示されているかどうかの属性を持つデータベース エンティティを作成することは避けたいと思います。これをどのように処理しますか?

4

1 に答える 1

0

1 つの方法は、フォームを next-page.php に POST し、ページで次のコードを実行することです。

if (isset($_POST['form_element']))
    include("form-process.php"); //Or whatever page the DB update goes in

編集: Javascriptでも実行できます。フォームがあるページにこれを置きます。

$("#ajax_submit").click(function(){
    $("#ajax_form").submit();
    window.location=location.protocol+'//'+location.host+location.pathname+"nextpage.php";
});

フォームが次のようなページで:

<form action="process_form.php" method="POST" id="ajax_form">
    Name: <input name="username"><br>
    Password: <input name="password" type="password"><br>
    <input type="submit" value="Login" id="ajax_submit">
</form>
于 2012-05-16T18:59:39.680 に答える