私は、自動入力フォームを使用するスクリプトを使用します。ユーザーがドロップダウンからオプションを選択すると、AJAXは外部ファイル(json_encode
を使用してデータベースからデータを返します)に要求し、フォームは自動入力されます。 AJAX呼び出しが行われ、ID username
とドロップダウンが変更された見ての通りJSONプロパティ名の自動解析と書式設定
function myrequest(e) {
var name = $('#username').val();
$.ajax({
method: "POST",
url: "autofill.php",
dataType: 'json',
cache: false,
data: {
username: name
},
success: function(responseObject) {
$('#posts').val(responseObject.posts);
$('#joindate').val(responseObject.joindate);
}
});
}
、とID posts
とjoindate
とフォームフィールドが自動的に入力されている:
は、ここでは、コードです。
しかし、異なるIDを持つフィールドが自動入力されるようなフォームには同じ関数を使用したいと思います(JSONはもちろん他のデータも返します)。この関数を変更する方法はないので、解析するJSON値ごとに別々の行を書く必要はありません($('#posts').val(responseObject.posts);
など)。
つまり、関数は返されるJSONデータを自動的に解析する必要があります。特定のIDを持つフィールドがある場合、そのフィールドは自動入力されます。したがって、JSONが{"abc123":"666","some_other_field":"2017-03-06"}
のようなデータを返す場合、関数はID abc123
とsome_other_field
というIDを持つフィールドを見つけて事前に埋め込む必要があります。
この種の問題のほとんどは、ブラケット表記で解決することができます。たとえば、responseObject [someVariable] = someOtherValueです。 someVariable = 'abc123'とすると、responseObject.abc123はsomeOtherValueで埋められます(プロパティがオブジェクトに存在しない場合は作成されます)。したがって、オブジェクトの設定方法に応じて、プロパティ名と値の配列を渡すだけで、そこに移動できます。 –