2013-11-04 43 views
0

这个问题上有很多,但我不明白为什么它不工作,它现在停止了。我运行查询并返回一个对象与PHP,然后尝试将其编码到JSON,然后解析它的客户端到JSON。它告诉我,SyntaxError:JSON.parse:JSON数据后的意外的非空白字符。将php对象编码为json

我的PHP代码:

$product = ShoppingCart::addToCart($_GET['product_id']); 

echo json_encode($product); 

客户端代码:

$.get(
    './models/shoppingCart.inc.php', 
    {product_id: id}, 
    function(data) { 
     var product = JSON.parse(data) 

     $('#cart_qty').html(cartQty); 

     var table=document.getElementById("table_products"); 
     var row=table.insertRow(1); 
     var cell1=row.insertCell(0); 
     var cell2=row.insertCell(1); 
     var cell3=row.insertCell(2); 
     cell1.innerHTML=product.product_name; 
     cell2.innerHTML=product.price; 
     cell3.innerHTML=qty; 

    }, 
    'html' 
); 

}; 

这是被退回了什么:

16{"product_id":"16","product_name":"Pavlova","price":"17.4500","supplier":{"company_name":"Pavlova, Ltd.","address":"74 Rose St.\r\nMoonie Ponds","phone":"(03) 444-2343","city":null,"contact_name":"Ian Devling","contact_title":"Marketing Manager"},"units_in_stock":"29","units_on_order":"0","reorder_level":"10","category_id":"3","qty_per_unit":"32 - 500 g boxes","discontinued":"0","supplier_id":"7"} 
+3

该脚本的其他部分在您显示的PHP代码之前回显'16'。 – Barmar

+0

你在做'echo $ _GET ['product_id'];'在你调用'echo json_encode($ product);'某处? – MonkeyZeus

回答

2

你有一些调试输出在你的PHP脚本或在开始<?php标记之前有内容。 json前面的16必须删除。找出它的来源并将其删除。

+1

就是这样,我删除了它,它的工作原理,谢谢 – user2809051

+0

欢迎您! – hek2mgl