使用PHP和AJAX在服务器上存储和访问数据

时间:2014-10-02 08:55:37

标签: javascript php jquery ajax knockout.js

我有一个网站可以添加暂时存储的评论,当您重新加载评论消失的页面时。我使用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);
});

任何帮助或示例都会非常有用!提前谢谢。

1 个答案:

答案 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.
    }
});