将json数据发送到php无法正常工作

时间:2014-12-14 13:13:33

标签: php jquery json

我正在尝试将重建的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)


?>

2 个答案:

答案 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']