我有一个网站可以添加暂时存储的评论,当您重新加载评论消失的页面时。我使用knockout和javascript将注释数据保存在ObservAbleArrayList中。我有一个想法是将此ObservAbleArrayList发送到我的服务器,存储它,然后当重新加载页面时,存储的arraylist将首先更新注释字段。我怎么能用AJAX和PHP做到这一点?
这是我的评论的javascriptcode:
function Comment() {
var self = this;
self.nickname = ko.observable();
self.newMsg = ko.observable("");
self.editable = ko.observable(false);
self.addComment = function () {
vm.comments.push(self);
vm.selectedComment(new Comment());
};
self.deleteComment = function () {
vm.comments.remove(self);
};
self.editComment = function () {
self.editable(!self.editable());
};
}
function ViewModel() {
var self = this;
self.comments = ko.observableArray();
self.selectedComment = ko.observable(new Comment());
}
var vm = new ViewModel();
ko.applyBindings(vm);
});
任何帮助或示例都会非常有用!提前谢谢。
答案 0 :(得分:0)
使用jQuery作为桥接器将数据作为JSON发送到服务器,以处理服务器端与其$.ajax()
包装器的交互。
首先,您需要将数据变更为JSON对象,以便发送并轻松解析。在淘汰赛中,您可以在.toJSON(model)
对象上使用ko
方法来获取JSON的解释,例如:
var jsonData = ko.toJSON(ViewModel);
这将为您提供JSON字符串。这已准备好传递给服务器,因此现在您可以构建对PHP脚本的$.ajax()
调用。
$.ajax({
url: '/path/to/my/script.ext',
type: 'GET', //default anyway, provided for clarity
dataType: 'json', //the returned data from the server will be automatically parsed as json
data: jsonData, //the KO model we converted earlier
success: function(data){
//the server's response is in "data" above, jsonParsed already.
}
});