Tôi đang sử dụng jQuery để lưu các giá trị của các đối tượng javascript của tôi. Tôi cần truy xuất ID của đối tượng được chèn từ cơ sở dữ liệu. Tôi biết làm thế nào để làm điều đó, nếu chức năng Save nằm trong đối tượng javascript (xem mã bên dưới). Nhưng làm thế nào tôi có thể thiết lập biến ID, nếu chức năng Save không có trong đối tượng javascript?Lưu các đối tượng javascript bằng cách sử dụng jquery và chuyển một ID từ cơ sở dữ liệu
làm việc:
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
}
});
};
}¨
Vì vậy, làm thế nào tôi sẽ hiện triển khai chức năng (bên ngoài lớp Person!) Như:
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 trong ví dụ thứ hai của bạn không phải là một đối tượng toàn cầu, do đó bạn sẽ cần phải thiết lập cái gì khác nếu bạn muốn giữ lại mà giá trị ID bằng cách nào đó. –
Thậm chí bạn có thử mã của mình không? Mã của bạn thực sự nên hoạt động. Hãy ghi nhớ có một số vấn đề với sau đó là không đồng bộ như được chỉ bởi trickyzter. Hãy thử thêm vào các cuộc gọi ajax của bạn 'async: false' để xem nó hoạt động. – Prusse
Vài câu hỏi: - Bạn sẽ gọi chức năng Lưu ở đâu? - Làm cách nào bạn chuyển tham chiếu của 'p' sang hàm Lưu? – Taher