向php发送json数据不起作用

向php发送json数据不起作用,php,jquery,json,Php,Jquery,Json,我正在尝试将重建的json数据发送到php脚本。但是json数据的发送和接收不起作用。返回“NULL”。请告诉我如何通过ajax发送和检索预先制作的json数据。我的代码怎么了 Jquery脚本 var jsonObj = []; var obj = {}; obj["medicine_name"]=parsed.medicine_name; obj["quantity"]=unit; obj["price"]=price; jsonObj.push(obj); console.log(json

我正在尝试将重建的json数据发送到php脚本。但是json数据的发送和接收不起作用。返回“NULL”。请告诉我如何通过ajax发送和检索预先制作的json数据。我的代码怎么了

Jquery脚本

var jsonObj = [];
var obj = {};
obj["medicine_name"]=parsed.medicine_name;
obj["quantity"]=unit;
obj["price"]=price;
jsonObj.push(obj);
console.log(jsonObj);
$("#order").click(function(event){
event.preventDefault();
//$jsonObj=JSON.stringify(jsonObj)
$.ajax({
url: "../siddiqa/function/ordermedicine.php",
type: "POST",
//dataType: "json",
data: jsonObj,
success:function(data, textStatus, jqXHR)
        {
        alert(data);

        },
error: function(jqXHR, textStatus, errorThrown)
        {
            //if fails   

        }
})


})
<?php
require_once('../configuration.php');
$con=new mysqli($hostname,$dbusername,$dbpass,$dbname);
if (mysqli_connect_errno($con)) {
    die('The connection to the database could not be established.');
}
$obj = $_POST['jsonObj'];

var_dump($obj)


?>
PHP脚本

var jsonObj = [];
var obj = {};
obj["medicine_name"]=parsed.medicine_name;
obj["quantity"]=unit;
obj["price"]=price;
jsonObj.push(obj);
console.log(jsonObj);
$("#order").click(function(event){
event.preventDefault();
//$jsonObj=JSON.stringify(jsonObj)
$.ajax({
url: "../siddiqa/function/ordermedicine.php",
type: "POST",
//dataType: "json",
data: jsonObj,
success:function(data, textStatus, jqXHR)
        {
        alert(data);

        },
error: function(jqXHR, textStatus, errorThrown)
        {
            //if fails   

        }
})


})
<?php
require_once('../configuration.php');
$con=new mysqli($hostname,$dbusername,$dbpass,$dbname);
if (mysqli_connect_errno($con)) {
    die('The connection to the database could not be established.');
}
$obj = $_POST['jsonObj'];

var_dump($obj)


?>

如果您的数据真的像您的问题所说的那样是json数据

向php发送json数据不起作用

您需要取消对此行的注释,以发送json数据和此答案

 $jsonObj=JSON.stringify(jsonObj);
现在,因为它是用php发送的json数据,所以您不能通过简单的$u POST获得它,您需要做这类工作来获得发布的数据

$data=file_get_contents('php://input');
$dataobj= json_decode($data);

在这里,您首先获取数据,然后将其从json解码为普通对象

您的PHP需要一个带有键的参数
jsonObj
,但
jsonObj
是一个数组,因此它没有任何命名键。应该是:

var jsonObj = {};
var obj = {};
obj.medicine_name=parsed.medicine_name;
obj.quantity=unit;
obj.price=price;
jsonObj.jsonObj = obj;
我不太清楚为什么要这样嵌套对象。你可以这样做:

data: obj

然后在PHP脚本中,您可以访问
$\u POST['medicine\u name']
$\u POST['quantity']
,以及
$\u POST['price']
,他在Javascript中从未调用过
JSON.stringify()
,因此它不会作为JSON发送。$jsonObj=JSON.stringify(jsonObj);并且不向php发送json数据working@Barmar标题是这个,还有一行被注释了,所以我根据标题提供了解决方案。你在这里呆的时间足够长了,你应该知道99%的时候,当有人说“JSON对象”时,他们的意思是“Javascript对象”.yes@barmar但JSON对象和未注释的行使我想到他想要JSON。所以你用常规对象提供了很好的答案,所以我回答了实际的标题:)