0

主にphpとjqueryを使って試験アプリを作成しています。現時点では、ユーザーが試験を作成できるように、アプリケーションには次のページがあります。

  • Create.php (教師は、日付、時間、期間、科目、問題数、合計点数などの試験の詳細を作成します)
  • QandA.php (教師が試験の問題と解答を作成)
  • Marks.php (教師は問題ごとに正解ごとにマークを設定します)
  • Penalty.php (教師は、試験にペナルティ マークを含めるかどうかを選択します)
  • Finish.php (試験の作成が完了したことを示すだけです)

現在、アプリケーションは正常に動作していますが、気付いたことがあります。このアプリケーションはブラウザ上で実行されるため、ユーザーはいつでもブラウザの戻るボタンをクリックできます。これは大きな問題を引き起こします。なぜなら、試験の作成を途中で完了しているときにブラウザの [戻る] ボタンをクリックすると、試験の作成の進行状況が失われるか、さらに悪いことに、ページの 1 つをやり直すことができるからです。これは、詳細を保存するデータベースに、半分完了した試験または必要以上の情報が含まれる可能性のある試験が含まれることを意味する可能性があります。

だから、これは私がやろうと思っていることですが、まず第一にそれが可能かどうか、そしてそうすることがベストプラクティスであるかどうかはわかりません:

  • 上記の 4 つのページ (finish.php を除く) のいずれかでユーザーがブラウザの戻るボタンをクリックすると、確認ボックスが表示され、「前のページに戻ると、現在の進行状況がすべて失われ、メニューに送信されます」というメッセージが表示されます。ページ (menu.php)

  • ユーザーが確認ボックスで [OK] をクリックすると、ユーザーは menu.php ページに移動し、AJAX によって別の php ページ (deleteentry.php) に移動し、データベースから試験の詳細が削除されます)

  • ユーザーが [キャンセル] をクリックすると、現在のページで問題なく続行できます

  • ユーザーがfinish.phpページでブラウザの戻るボタンをクリックすると、「戻ることはできません。exaxは正常に完了しました。メニューページに戻ります」という警告が表示されます。ユーザーを menu.php ページにナビゲートするだけで、呼び出す ajax などはありません)

私の質問はそれです

  1. 上記のアイデアは、この問題に取り組むための適切な解決策ですか?

  2. ブラウザの戻るボタンが押されたページに応じていつ押されたかを判断し、実行可能なコマンドを実行できるようにするには、コードをどのように記述すればよいでしょうか? また、バックグラウンドで deleteentry.php ページに移動するために AJAX を作成する方法も知っておく必要があります。

どうもありがとうございます

4

1 に答える 1

2

タイトルの質問にお答えします。

ブラウザの戻るボタンがクリックされた場合の警告と確認を表示する方法

「戻る」ボタンがクリックされたのか、ページが更新されたのか、単にページが変更されたのかわかりません ->

onunloadイベントは、これらすべてのケースを処理します。

于 2012-12-12T17:13:34.057 に答える