PHP收到json

时间:2012-02-14 17:00:11

标签: php ajax json knockout.js

我正在使用淘汰赛,这是我的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

提前感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

它将在变量$_POST['key']中,其中'key'是JSON对象中的键值。

答案 1 :(得分:2)

    **This is what exactly the way to post as json way**

//index.php
     $(document).ready(function(){
               obj = {}
               obj.name = "sam"
               obj.value = "12345"
                      $.ajax({
                               url:"json.php",
                               type: "post",
                               data :obj,
                               dataType:"json",
                               success: function (result) {
                                    alert(result.name);
                               }
                             });
            }); 

    //json.php  ,, the posted data is received as array ,, so we need to convert it as //json_encode to make as JSON again 

    <?php
    $jsonReceiveData = json_encode($_POST);
    echo $jsonReceiveData;
    ?>

答案 2 :(得分:0)

  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文件中使用$ _POST来获取数据 我是assumin你也在使用jquery而$是jquery函数。现在这个数据可以在post superglobal中找到。注意:您不需要使用json通过ajax函数发送数据。数据以序列化数组格式传递,如:field1 = value1&amp; field2 = value2等...

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

在服务器端data = json_decode($ _ POST ['json']);

答案 3 :(得分:0)

解决方案是采取

contentType: "application/json",
来自ajax电话的

=)