Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
PHP接收json_Php_Ajax_Json_Knockout.js - Fatal编程技术网

PHP接收json

PHP接收json,php,ajax,json,knockout.js,Php,Ajax,Json,Knockout.js,我正在使用knockout,这是我的ajax代码: save: function() { $.ajax({ url:"http://localhost/loyalty/welcome/json/", type: "post", data: ko.toJSON(this), contentType: "app

我正在使用knockout,这是我的ajax代码:

save: function() {
                $.ajax({
                    url:"http://localhost/loyalty/welcome/json/",
                    type: "post",
                    data: ko.toJSON(this),
                    contentType: "application/json",
                    success: function (result) { alert(result) }
                });
            }
使用firebug,我可以看到json消息发送正确,问题是如何在PHP上接收它,发送的消息的名称是什么

我用的是CodeIgniter


提前感谢您的帮助。

它将位于变量
$\u POST['key']
中,其中
'key'
是JSON对象中的键值。

它将位于变量
$\u POST['key']
中,其中
'key'
是JSON对象中的键值

  save: function() {
            $.ajax({
                url:"http://localhost/loyalty/welcome/json/",
                type: "post",
                data: $(this).serialize()/*Where this is an instance of the form change with appropriate selector such as #loginForm*/,
                contentType: "application/json",
                success: function (result) { alert(result) }
            });
        }
在php文件中使用$\u POST获取数据 我想您也在使用jquery,$是jquery函数。现在,这些数据可以在post superglobal中获得。注意:您不需要使用json通过ajax函数发送数据。数据以序列化数组格式传递,如:field1=value1&field2=value2等

但是,如果必须使用json(坦率地说这是不必要的),请使用数据:“json=“+ko.toJSON(form)

服务器端数据=json_decode($_POST['json'])

在php文件中使用$\u POST获取数据 我想您也在使用jquery,$是jquery函数。现在,这些数据可以在post superglobal中获得。注意:您不需要使用json通过ajax函数发送数据。数据以序列化数组格式传递,如:field1=value1&field2=value2等

但是,如果必须使用json(坦率地说这是不必要的),请使用数据:“json=“+ko.toJSON(form)

服务器端数据=json_decode($_POST['json'])

**这正是发布json的方式**
//index.php
$(文档).ready(函数(){
obj={}
obj.name=“sam”
obj.value=“12345”
$.ajax({
url:“json.php”,
类型:“post”,
资料来源:obj,
数据类型:“json”,
成功:功能(结果){
警报(result.name);
}
});
}); 
//json.php,,发布的数据作为数组接收,因此我们需要将其转换为//json\u encode,以再次转换为json
**这正是作为json方式发布的方式**
//index.php
$(文档).ready(函数(){
obj={}
obj.name=“sam”
obj.value=“12345”
$.ajax({
url:“json.php”,
类型:“post”,
资料来源:obj,
数据类型:“json”,
成功:功能(结果){
警报(result.name);
}
});
}); 
//json.php,,发布的数据作为数组接收,因此我们需要将其转换为//json\u encode,以再次转换为json

解决方案是

contentType: "application/json",
来自ajax调用


=)

解决方案是

contentType: "application/json",
来自ajax调用


=)

Hi…我收到了这个JSON:[{“name”:“JoÃo”,“isOnTwitter”:false}],并且使用$\u POST['name']不会返回任何内容。您的JSON在一个数组中。您可能希望它位于一个只有
{}
环绕的裸对象中。否则它是一个数组,您需要给它一个名称。类似于
{“jsonval”:ko.toJSON(this)}
的表单数据不是使用json传递的。HTTP有自己的数据传输格式。使用form.serialize()如何仅返回JSON而不是数组?@SomeshMukherjee jQuery ajax函数中的
数据
值可以通过如下所列的对象格式传递。序列化是另一种方法,也是有效的…我收到了这个JSON:[{“name”:“JoÃo”,“isOnTwitter”:false}],使用$_POST['name']什么也不返回。你的JSON在一个数组中。您可能希望它位于一个只有
{}
环绕的裸对象中。否则它是一个数组,您需要给它一个名称。类似于
{“jsonval”:ko.toJSON(this)}
的表单数据不是使用json传递的。HTTP有自己的数据传输格式。使用form.serialize()如何仅返回JSON而不是数组?@SomeshMukherjee jQuery ajax函数中的
数据
值可以通过如下所列的对象格式传递。序列化是另一种方法,也是有效的