Javascript 使用PHP和AJAX在服务器上存储和访问数据
我有一个网站,有可能添加评论,只是暂时存储,当你重新加载页面的评论都消失了。我使用knockout和javascript将注释数据保存在ObservAbleArrayList中。我的一个想法是将这个可观察的arraylist发送到我的服务器,存储它,然后当页面重新加载时,存储的arraylist将首先更新commentfield。如何使用AJAX和PHP实现这一点 下面是我的注释javascriptcode:Javascript 使用PHP和AJAX在服务器上存储和访问数据,javascript,php,jquery,ajax,knockout.js,Javascript,Php,Jquery,Ajax,Knockout.js,我有一个网站,有可能添加评论,只是暂时存储,当你重新加载页面的评论都消失了。我使用knockout和javascript将注释数据保存在ObservAbleArrayList中。我的一个想法是将这个可观察的arraylist发送到我的服务器,存储它,然后当页面重新加载时,存储的arraylist将首先更新commentfield。如何使用AJAX和PHP实现这一点 下面是我的注释javascriptcode: function Comment() { var self = this;
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);
});
任何帮助或示例都将非常有用!提前感谢。使用jQuery作为桥接器将数据作为JSON发送到服务器,以处理与
$.ajax()包装器的服务器端交互
首先,您需要将数据转换为JSON对象,以便发送和轻松解析。在knockout中,您可以对ko
对象使用.toJSON(model)
方法来获取对它的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.
}
});
谢谢你的回答!但是要发送我的jsonData,我必须使用类型为“POST”的ajax函数?这样地?self.sendEntry=function(){$.ajax({type:“POST”,url:“storage.php”,data:jsonData});};然后要再次检索它,我可以使用您的GET方法?@Scatman\u John您可以使用POST
或GET
,这没关系。更多的是关于什么是语义上正确的。您是否正在将数据发布到服务器?或者,您是否正在向服务器发送数据以产生响应?如果是前者,键入:“POST”,如果是后者,键入:“GET”
。请记住,在PHP中,唯一的变化是$\u POST
,而不是$\u GET
是的,我只是想将数据发布到服务器上,然后如果用户刷新页面,所有旧的注释仍将存在。因此,我想当提交评论时,我将使用POST,并在页面刷新时运行GET函数。@Scatman\u John Correct!这也正是我处理它的方式。它如何处理我发送内容的url文件,我是否必须编写一个特殊的PHP文件来处理传输,然后将内容保存在一个文件中?