Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用PHP和AJAX在服务器上存储和访问数据_Javascript_Php_Jquery_Ajax_Knockout.js - Fatal编程技术网

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

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;

我有一个网站,有可能添加评论,只是暂时存储,当你重新加载页面的评论都消失了。我使用knockout和javascript将注释数据保存在ObservAbleArrayList中。我的一个想法是将这个可观察的arraylist发送到我的服务器,存储它,然后当页面重新加载时,存储的arraylist将首先更新commentfield。如何使用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);
});

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

使用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文件来处理传输,然后将内容保存在一个文件中?