使用ajax将JSON发送到PHP

我想以json格式向php发送一些数据,并在php中进行一些操作。我的问题是我无法通过Ajax将json数据发送到我的php文件。请帮助我该怎么做。我已经尝试过这种方式..


<script>

$(function (){

 $("#add-cart").click(function(){

    var bid=$('#bid').val();

    var myqty=new Array()

    var myprice=new Array()


    qty1=$('#qty10').val();

    qty2=$('#qty11').val();

    qty3=$('#qty12').val();


    price1=$('#price1').val();

    price2=$('#price2').val();

    price3=$('#price3').val();


    var postData = 

                {

                    "bid":bid,

                    "location1":"1","quantity1":qty1,"price1":price1,

                    "location2":"2","quantity2":qty2,"price2":price2,

                    "location3":"3","quantity3":qty3,"price3":price3

                }

    var dataString = JSON.stringify(postData);


    $.ajax({

            type: "POST",

            dataType: "json",

            url: "add_cart.php",

            data: {myData:dataString},

            contentType: "application/json; charset=utf-8",

            success: function(data){

                alert('Items added');

            },

            error: function(e){

                console.log(e.message);

            }

    });

});

});

</script>

在PHP中,我使用:


if(isset($_POST['myData'])){

 $obj = json_decode($_POST['myData']);

 //some php operation

}

在php文件中添加print_r($ _ POST)时,它在firebug中显示array(0){}。


江户川乱折腾
浏览 598回答 3
3回答

尚方宝剑之说

输了contentType: "application/json; charset=utf-8",。您没有将JSON发送到服务器,而是发送了普通的POST查询(恰好包含JSON字符串)。那应该可以使您工作。事实是,您根本不需要使用JSON.stringify或json_decode在这里。做就是了:data: {myData:postData},然后在PHP中:$obj = $_POST['myData'];

30秒到达战场

这是因为$_POST预先填充了表单数据。要获取JSON数据(或任何原始输入),请使用php://input。$json = json_decode(file_get_contents("php://input"));

撒科打诨

要使用json和ajax将javascript obj发送到php:js:var dataPost = {&nbsp; &nbsp;"var": "foo"};var dataString = JSON.stringify(dataPost);$.ajax({&nbsp; &nbsp;url: 'server.php',&nbsp; &nbsp;data: {myData: dataString},&nbsp; &nbsp;type: 'POST',&nbsp; &nbsp;success: function(response) {&nbsp; &nbsp; &nbsp; alert(response);&nbsp; &nbsp;}});在php中使用该对象:$obj = json_decode($_POST["myData"]);echo $obj->var;
打开App,查看更多内容
随时随地看视频慕课网APP