Tengo una llamada API que estoy usando para obtener datos. Estos datos son una matriz de matrices y necesito recorrerlos. Para cada valor, quiero 'cargar' una plantilla php que creé con esos valores. El primer bucle funciona y se muestra correctamente, pero después del valor inicial, se detiene. Necesito que todos los valores se recorran y se muestren.
Ejemplo de lo que está sucediendo: [a, b, c] => bucle JQuery => cargar => Solo aparece 'a'.
EDITAR: cada vez que se llama a la carga, carga el script en 'elementToLoadPhpFile'. Noté que parece estar sobrescribiendo los valores anteriores que están cargados allí. Lo necesito para agregar varios niños, no anular el mismo niño.
$.ajax({ type: 'GET', dataType: "json", url: 'apiUrl.com' }).done(function(data) { var result = data['data']; jQuery.each(result, function(key, value) { var id = value['id']; var title = value['title']; var img_url = value['images']['jpg']['image_url'] $("#elementToLoadPhpFile").load("phpFile.php", { id: id, title: title, img_url: img_url }); }); });
Considera lo siguiente.
jQuery(function($) { $.getJSON('apiUrl.com', function(response) { $.each(response.data, function(key, val) { $.get("phpFile.php", { id: val.id, title: val.title, img_url: val.images.jpg.image_url }, function(html) { $("#elementToLoadPhpFile").append(html); }); }); }); });
Si .load()
está funcionando, pero está reemplazando el contenido, como se esperaba, entonces es posible que desee OBTENER el contenido para poder agregarlo. Mira aquí:
Este método es la forma más sencilla de obtener datos del servidor. Es más o menos equivalente a
$.get(url, data, success)
excepto que es un método en lugar de una función global y tiene una función de devolución de llamada implícita. Cuando se detecta una respuesta exitosa (es decir, cuando textStatus es "éxito" o "no modificado"),.load()
establece el contenido HTML de los elementos coincidentes con los datos devueltos.
Los objetos se escriben mejor en notación de puntos.