为了账号安全,请及时绑定邮箱和手机立即绑定

使用ajax将JSON发送到PHP

使用ajax将JSON发送到PHP

江户川乱折腾 2019-11-29 14:29:10
我想以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){}。
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

输了contentType: "application/json; charset=utf-8",。您没有将JSON发送到服务器,而是发送了普通的POST查询(恰好包含JSON字符串)。


那应该可以使您工作。


事实是,您根本不需要使用JSON.stringify或json_decode在这里。做就是了:


data: {myData:postData},

然后在PHP中:


$obj = $_POST['myData'];


查看完整回答
反对 回复 2019-11-29
?
30秒到达战场

TA贡献1828条经验 获得超6个赞

这是因为$_POST预先填充了表单数据。


要获取JSON数据(或任何原始输入),请使用php://input。


$json = json_decode(file_get_contents("php://input"));


查看完整回答
反对 回复 2019-11-29
?
撒科打诨

TA贡献1934条经验 获得超2个赞

要使用json和ajax将javascript obj发送到php:


js:


var dataPost = {

   "var": "foo"

};

var dataString = JSON.stringify(dataPost);


$.ajax({

   url: 'server.php',

   data: {myData: dataString},

   type: 'POST',

   success: function(response) {

      alert(response);

   }

});

在php中使用该对象:


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


echo $obj->var;


查看完整回答
反对 回复 2019-11-29
  • 3 回答
  • 0 关注
  • 596 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信