簡體   English   中英

Symfony JsonResponse:獲取symfony控制器返回的多維數組的每個元素

[英]Symfony JsonResponse: Fetching each element of multidimensional array returned by symfony controller

當我嘗試獲取表的所有行時,基本上我想做的就是嘗試從symfony控制器傳遞的“數組”數組中獲取每個元素。 我的控制器工作正常,並給了我輸出:

[{“ id”:1,“名稱”:“約翰遜嬰兒洗發水”,“ dsc”:“洗發水”,“ pic”:“ 572f8a02d59b3.jpg”,“公司”:4,“類型”:“嬰兒用品” ,“價格”:150,“出售”:空,“庫存”:200},{“ id”:2,“名稱”:“約翰遜肥皂”,“ dsc”:“嬰兒肥皂”,“圖片”:“ 57303fc35f72c.jpg”,“公司”:4,“類型”:“嬰兒產品”,“價格”:52,“已售”:空,“庫存”: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);
    }

}

由於您使用的是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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM