javascript nesnelerimin değerlerini kaydetmek için jQuery kullanıyorum. Eklenen nesnenin kimliğini veritabanından geri almam gerekir. Kaydet işlevi javascript nesnesinde ise, bunu nasıl yapacağımı biliyorum (aşağıdaki kod). Ancak, Kaydet işlevi javascript nesnesinde değilse, ID değişkenini nasıl ayarlayabilirim?jquery kullanarak javascript nesnelerini kaydetme ve veritabanından bir kimlik geçirme
Çalışma:
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
}
});
};
}¨
Yani şimdi (Kişi sınıfının dışında!) Bir işlevi gibi uygulamak nasıl:
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 global nesne değil, bir şekilde bu kimlik değerini korumak istiyorsanız böylece başka bir şey ayarlamak gerekir. –
Kodunuzu denediniz mi? Kodunuz aslında çalışmalıdır. Trickyzter tarafından işaret edilen asenkronize olmanın bazı sorunları olduğunu unutmayın. Çalıştığını görmek için ajax çağrılarınızı 'async: false' öğesine eklemeyi deneyin. – Prusse
Birkaç soru: - Nereden Kaydetme Fonksiyonunuzu arayacaksınız? - 'p' referansını kaydetme işlevine nasıl geçiyorsunuz? – Taher