HOLA DE NUEVO, LOGRE HACER QUE ME DEBUELVA LOS DATOS JSON, PERO EN VARIOS CASOS, CUANDO HAGO EL PEDIDO DESDE AJAX NO ME RECONOCE LA URL, BUENO ESO ES LO QUE CREO PORQUE EN EL NAVEGADOR ME MUESTRA LOS DATOS MUY BIEN.
ESTE ES MI CONTROLADOR:
<?php namespace admin\adminBundle\Controller; use Symfony\Component\HttpFoundation\JsonResponse; class ListarController extends Controller { /** * @Route("/Jsoncategoria") */ public function liscategoriaAction() { $em = $this->getDoctrine()->getManager(); $ToodInd = $em->getRepository('adminBundle:Ecategoria')->findAll(); foreach ($ToodInd as $in) { $data[] = array( 'id' => $in->getId(), 'aname' => $in->getAusern(), ); } return new JsonResponse($data); } //...
EN MI VISTA TENGO LO SIGUIENTE:
{%block GLOBALCONENIDO%} <script type="text/javascript"> $(document).ready(function(){ $.ajax({ url:"{{url('index')}}/Jsoncategoria ", type:'get', dataType:'json', success:function(data){ $("#listCategoria").html(""); $.each(data,function(i,index){ $("#listCategoria").prepend('<tr class="footable-even" style="display: table-row;">' + '<td id="id'+index.id+'">'+index.id+'</td>' + '<td id="aname'+index.id+'">'+index.aname+'</td>' + '</tr>'); }); editar(); }, error:function(){ alert("Error al cargar la lista de cargos"); } }); }); </script> <table class="table table-striped table-bordered table-hover" id="editable"> <thead> <tr> <th class="text-left">No</th> <th class="text-left">Categoria</th> </tr> </thead> <tbody id="listCategoria"> <tr> <td>Cargando...</td> <td>Cargando...</td> </tr> </tbody> </table> {%endblock%}
BUENO AL FINAL SOLO ME MUESTRA LA TABLA SOLO CON EL CARGANDO.. Y NO ME MUESTRA LOS DATOS QUE ES EL OBJETIVO DE ESTO.. YA HE PROBADO DE VARIAS FORMAS YA NO SE QUE MAS HACER. ESPERO QUE ME PUEDAN AYUDAR
Respuestas
Hola,
Para que te funcionen bien las rutas de symfony por AJAX, deberías usar el FOSJsRoutingBundle
Saludos,
@miguelplazasr
Hola @JenriqueKike,
Mira como en la url tienes 2 espacios al final, intenta quitarlos y volver a probar.
$.ajax({ url:"{{url('index')}}/Jsoncategoria ",
Si eso no funciona puedes decirnos que error te arroja el request ajax.
Observación
Porque no le pones el nombre al router, algo así
/**
* @Route("/Jsoncategoria", name="categories_json")
*/
y la url en el javascript
$.ajax({ url:"{{ url('categories_json') }}", ...
Saludos!
@iBet7o