这里的想法是使用MySQL数据库表中的一些产品自动加载(或加载)我的索引页面.
首先,我的PHP.
getRows('SELECT * FROM products'); foreach($items as $eachItem){ $itemsJSON = new Item($eachItem->product_name, $eachItem->product_quantity, $eachItem->product_cost); echo json_encode($itemsJSON); }
这似乎工作得很好,并给了我两个正确编码我的Item类的JSON对象.
{"name":"Slippers","quantity":"3","cost":"4.00"} {"name":"Gloves","quantity":"5","cost":"9.00"}
我的JavaScript看起来像这样(以及许多其他类似的变体)
$(document).ready(function () { $.post( "productloader.php", function( data ) { $( "#result" ).html( data ); }); });
我不确定为什么它不起作用.我不想使用$.getJSON()
因为没有查询字符串可以使用,所以我认为我需要$.post()
.
这似乎是一个非常普遍的问题,但我还没有找到解决方案.任何帮助,将不胜感激.谢谢.
你不能json_encode()
分开每个项目.您发送到浏览器的数据不是有效的JSON,只是许多小块的有效JSON一个接一个.在循环中构建一个数组,然后编码整个数组.另见http://jsonlint.com/
getRows('SELECT * FROM products'); foreach($items as $eachItem){ $itemsJSON[] = new Item($eachItem->product_name, $eachItem->product_quantity, $eachItem->product_cost); } echo json_encode($itemsJSON);