2014-12-14 4 views
0

Я пытаюсь отправить свои восстановленные данные json на свой php-скрипт на php. но передача и получение данных json не работают. его возвращение «NULL». Скажите, пожалуйста, как отправлять и извлекать мои данные jonn с помощью ajax. что не так с моим кодом.отправка json данных в php не работает

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

Если данные действительно JSON данные, как ваш вопрос говорит

отправки данных JSON не PHP работа

Вы должны раскомментировать эту строку для отправки данных JSON и этот ответ работать

$jsonObj=JSON.stringify(jsonObj); 

Теперь Поскольку JSon данные, отправляемого в PHP вы не можете получить его просто $ _POST вам нужно делать такого рода вещи, чтобы получить это Отправленные данные

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

Здесь вы можете получить данные первого затем декодировать его из JSON в обычный объект

+0

Он никогда не называл 'JSON.stringify()' в Javascript, поэтому он не будет отправлен как JSON. – Barmar

+0

$ jsonObj = JSON.stringify (jsonObj); и отправка json-данных в php не работает –

+0

@ Заголовок Barmar был таким, и строка также была прокомментирована, поэтому я предоставил решение в соответствии с заголовком –

0

Ваш PHP ехр ects параметр с ключом 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'].

Смежные вопросы