我正在尝试将重建的json数据发送到我的php脚本到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脚本
<?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)
?>
答案 0 :(得分:0)
如果你的问题是
,那么你的数据真的是一个json数据将json数据发送到php无法正常工作
您需要取消注释此行以发送json数据和此答案
$jsonObj=JSON.stringify(jsonObj);
现在,由于它是在php中发送的json数据,你不能通过简单的$ _POST获得它,你需要做这种东西来获得这个发布的数据
$data=file_get_contents('php://input');
$dataobj= json_decode($data);
这里先获取数据,然后将其从json解码为普通对象
答案 1 :(得分:0)
您的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脚本中,您可以访问$_POST['medicine_name']
,$_POST['quantity']
和$_POST['price']
。