これはケースです - 私は、MySQLデータベースを使用してnode.js + Expressアプリケーションを持っています。私はテーブル(Employeeの例)からデータを読みます。私は必要なデータをHTML形式で表示します。従業員の名前、メールアドレス、電話番号、住所などNode.js Express POSTのみルータへの入力を変更しました
フォームでは、ユーザーはすべてのフィールドまたは選択したフィールドを更新し、送信を押してレコードを更新できます。アップデートで
私は私のルータを呼び出し、ボディパーサーを使用してフォーム入力をお読みください。
<form role="form" action="/employee/update" method="post">
Name : <input type="text" name="ename"/>
Email : <input type="email" name="empEmail"/>
.
.
.
</form>
今、ユーザーはすべての入力を変更したり、一つだけことができます。しかし、私はSQLの更新を行うときにのみ変更されたフィールドを更新したいです。
私の現在のソリューション
私が今やっていることは、私は、ユーザーによって変更された任意の入力の名前を格納し、フォームの隠し入力を持っているということです。したがって、私のパブリックjsファイルでは、jqueryコードは入力のonchangeを変更し、変更された入力の "name"プロパティを読み込み、コンマで区切られた文字列を作成し、隠し入力に値として割り当てます。
ユーザーは名前とメールアドレスを変更するのであれば、非表示の入力は次のようになります。ユーザーがクリックを提出したときに、私はちょうど行う私のルータ上で、だから、
<input type="hidden" name="FormHiddenInput" value="ename,empEmail"/>
:
var fieldName = req.body.FormHiddenInput;
その後私はそれを分割し、変更された個々のフィールドの名前を抽出し、req.bodyを再度実行します。
このプロセスはうまくいきますが、私はそれが気に入らないのです。それはあまりにも多くのコードを必要とし、ループのために行く。
私は入力/ textarea/selectなどの名前は、実際にルータで直接フォームで変更されたものですか?
オクラホマので、ちょうど全身を読み、セット – codeinprogress
うんを更新し、それは正しいです。 – 0019
ありがとう、私は行って、私のコードを更新します。 – codeinprogress