基本上我要做的是尝试从symfony控制器传递的“数组”数组中获取每个元素,当我尝试获取表的所有行时。我的控制器工作得非常好,给我输出:
[{“id”:1,“name”:“johnsonn's baby shampoo”,“dsc”:“shampoo”,“pic”:“572f8a02d59b3.jpg”,“company”:4,“type”:“婴儿用品“,”价格“:150,”已售出“:null,”stock“:200},{”id“:2,”name“:”johnson's soap“,”dsc“:”baby soap“,”pic “:”57303fc35f72c.jpg“,”公司“:4,”类型“:”婴儿用品“,”价格“:52,”已售出“:null,”库存“:1000}]
我的用于获取此输出的javascript如下:
<script>
function fetchprod() {
$.ajax({
url: "/show/prod",
dataType: "json"
}).success(function(data){
$('#container').html(JSON.stringify(data));
});
}
fetchprod();
setInterval(function () {fetchprod()}, 3000);
</script>
我想要做的是分别获取每个数组的每个元素,以便我可以创建一个div,以便它们可以正确排列在网格中。
该数组也由symfony控制器获取(如果您需要额外的信息):
public function showAction($slug){
$em = $this->getDoctrine()->getManager();
if($slug == 'prod'){
$repo = $em->getRepository('SystemBundle:Products');
$q = $repo->createQueryBuilder('u')
->getQuery()
->getArrayResult();
return new JsonResponse($q);
}
}
答案 0 :(得分:0)
由于你正在使用jQuery,也许你可以使用each
方法:
// ajax call
.success( function (data) {
$.each(data, function(key, value) {
var div = '<div>' + JSON.stringify(value) + '</div>';
$('#container').append(div);
});
});
// close function
通过这种方式,您遍历数组中的每个对象,将其放在div中,然后将其附加到#container
。
应该创建类似的东西:
<div id="container">
<div>{"id":1,"name":"johnsonn's baby shampoo","dsc":"shampoo","pic":"572f8a02d59b3.jpg","company":4,"type":"baby products","price":150,"sold":null,"stock":200}</div>
<div>{"id":2,"name":"johnson's soap","dsc":"baby soap","pic":"57303fc35f72c.jpg","company":4,"type":"baby products","price":52,"sold":null,"stock":1000}</div>
</div>