0

フォームが送信されているときに、重複が既に存在するかどうかを確認する必要があります。その場合、フォームの送信が停止され、そのユーザーがフィールドを再度編集できるようになります。これまで ajax を実際に使用したことは一度もありませんでしたが、このようなものには ajax を使用するのが最適だと読んだことがあります。私もPHPは使えませんが、javascriptとaspは使えます。現在、次のようにして、重複する値が既に存在するかどうかをデータベースで確認できます。

var  SQL =  " SELECT COUNT(LeaveID) AS Dup, personalID, StartDate, EndDate, StartTime, EndTime, LeaveType";
     SQL += " FROM onLeave";
     SQL += " WHERE personalID = " + ipersonalID;
     SQL += " GROUP BY personalID, StartDate, EndDate, StartTime, EndTime, LeaveType";
     SQL += " HAVING COUNT(LeaveID) > 1";
     SQL += " ORDER BY StartDate DESC";
var rs = Connection.Execute(SQL);

writeTable(rs)

writetable(rs) はデータを html テーブルに出力するだけで、ipersonalID はページを表示しているユーザーの現在の ID です。送信は、以下のような単純な入力です。

<input type="button" name="btnSubmit" value="Submit" onclick="submitSkedChange()" id="btnSubmit"/>
4

1 に答える 1

2

@asawyer からのコメントに同意します。より良いアプローチは、一意の制約をテーブルに追加して失敗させることです。コード ビハインドでは、単に例外をキャッチして、エラーをユーザーに表示します。Violation of unique constraint具体的にエラーをキャッチし、それに応じて行動することができます。他のエラーについては、何をすべきかを決める必要があります。

上記のアプローチには、IMO にいくつかの利点があります。

  1. DB 呼び出しが 1 つ少なくなります。
  2. 上記の理由と、ajax 呼び出しを行う必要がないため、パフォーマンスが向上するはずです
  3. DB レベルでデータの整合性が確保されますが、これは良いことです。
于 2012-08-24T19:03:10.060 に答える