Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Error al pedir url para mostrar datos json

2 de febrero de 2017

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

#1

Hola,

Para que te funcionen bien las rutas de symfony por AJAX, deberías usar el FOSJsRoutingBundle

Saludos,

@miguelplazasr

7 febrero 2017, 23:12
#2

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

9 febrero 2017, 18:22