jquery - Creating LIs on the fly doesn't work as I want -
i have symfony 2 function called via ajax template. function:
/**  * subcategories based on $parent_id parameter  *  * @route("/category/subcategories/{parent_id}", name="category_subcategories", options={"expose"=true})  * @method("get")  */ public function getcategories($parent_id = null) {     $em = $this->getdoctrine()->getmanager();     $entities = $em->getrepository('categorybundle:category')->findby(array("parent" => $parent_id));      $subcategories = array();     foreach ($entities $entity) {         $subcategories[] = array($entity->getid() => $entity->getname());     }      $response = new jsonresponse();     $response->setdata($subcategories);      return $response; }   that functions returns json this:
[{"27":"test10"},{"28":"test11"},{"29":"test12"}]   so wrote jquery function parse , display elements:
$(function() {     $("a.step").click(function() {         var id = $(this).attr('data-id');         $.ajax({             type: 'get',             url: routing.generate('category_subcategories', {parent_id: id}),             datatype: "json",             success: function(data) {                 if (data.length != 0) {                     var lis = "";                     $.each(data[0], function(i, v) {                         lis += '<li><a class="step" data-id="' + + '" href="#">' + v + '</a></li>';                     });                      $('#categories').html(lis);                 }             }         });     }); });   but it's not working because first element of json array showed, wrong in code? advice?
$.each(data[0], function(i, v) {   lis += '<li><a class="step" data-id="' + + '" href="#">' + v + '</a></li>'; });   here data[0] {"27":"test10"}, want data.
try this:
$.each(data, function(index, value) {   $.each(value, function(i, v) {     lis += '<li><a class="step" data-id="' + v + '" href="#">' + v + '</a></li>';   } });      
Comments
Post a Comment