私のjavascriptオブジェクトの値を保存するためにjQueryを使用しています。挿入されたオブジェクトのIDをデータベースから取得する必要があります。 Save関数がjavascriptオブジェクト内にある場合、私はそれを行う方法を知っています(下記のコードを参照)。しかし、Save関数がjavascriptオブジェクトにない場合、ID変数をどのように設定できますか?jqueryを使用してjavascriptオブジェクトを保存し、データベースからIDを渡す
ワーキング:
Person = function() {
var self = this;
self.ID;
self.Name;
self.SurName;
self.Save = function() {
$.ajax({
type: "POST",
url: "Save",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ Name: self.Name, SurnName: self.SurName }),
dataType: "json",
success: function (result) {
var ID = result.d.ID; //this is the ID retreived from database
self.ID = ID; //set the ID, it works, since I can reference to self
}
});
};
}¨
だから私は今(Personクラス外!)機能などを実装する方法を:
SavePerson = function(p) {
$.ajax({
type: "POST",
url: "Save",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ Name: p.Name, SurnName: p.SurName }),
dataType: "json",
success: function (result) {
var ID = result.d.ID; //this is the ID retreived from database
p.ID = ID; //set the ID, it doesn't work, becouse if I call SavePerson repetedly for different objects, a p will not be a correct person.
}
});
};
pは2番目の例では、グローバルオブジェクトではありません、ので、あなたが何らかの形でそのIDの値を保持したい場合は、何か他のものを設定する必要があります。 –
コードを試しましたか?あなたのコードは実際に動作するはずです。 trickyzterが指すような非同期的な問題がいくつかあることに留意してください。あなたのajaxにaddを試してみると、 'async:false'が呼び出されて動作しています。 – Prusse
ごくわずかな質問: - 保存機能とはどこから呼び出しますか? - どのように 'p'の参照を保存機能に渡しますか? – Taher