Tengo problemas para descifrar cómo leer correctamente mi respuesta JSON a partir de una solicitud jQuery $ .post().
En el siguiente código de jQuery, que pueblan una serie de cadenas de elementos del DOM basado en el correspondiente "color_entry_id" que utilizo como la clave:
var image_links = {};
$(this).find('input[name="color_id"]').each(function() {
var color_entry_id = $(this).val();
var image_link = $(this).parent().find('input[name="edit_image"].' + color_entry_id).val();
image_links[color_entry_id] = image_link;
});
Entonces hago la solicitud POST, el envío de mi serie de "image_links":
$.post(
"test.php",
{ id: product_id, "images[]": jQuery.makeArray(image_links) },
function(data) {
var response = jQuery.parseJSON(data);
$.each(response.images, function(index, item) {
alert(item);
});
}
);
Además, como se muestra arriba, trato de recorrer la matriz de respuesta y salida de cada elemento, lo que yo quiero ser una cadena, pero solo me dan "[object Object ] como el valor de alerta. ¡No sé cómo hacer que muestre las cuerdas que intento mostrar!
Este es el código PHP para prueba.php:
<?php
$product_id = $_POST['id'];
$images = $_POST['images'];
$response = array();
$response['id'] = $product_id;
$response['images'] = $images;
echo json_encode($response);
?>
Y aquí es lo que la parte pertinente de la DOM se parece a:
<input type='hidden' value='{{ color_entry_id }}' name='color_id' />
<p><img src='{{ color_img_link }}' /></p>
<p>Image Link: <input class='{{ color_entry_id }}' name='edit_image' type='text' size='150' value='{{ color_img_link }}' /></p>
<div class='colors {{ color_entry_id }}'>
<div class='img_color'>
<a href='javascript:void' style='background:...' class='selected'></a>
<p>...</p>
</div>
</div>
Me pregunto si tal vez lo estoy haciendo la codificación JSON incorrectamente en el lado PHP o si simplemente estoy repitiendo incorrectamente la respuesta en jQuery. ¡¡Cualquier ayuda es muy apreciada!!
¿Qué espera 'makeArray' que ver con su objeto' image_links'? Y tendrás mejor suerte con 'console.log' para depuración,' alert' hace un lío de cosas cuando las ataca. –
Hmm, eso es lo que había usado anteriormente para una aplicación diferente que funcionó bien. ¿No debería usar eso? – jrubins
¿Pero por qué estás usando 'makeArray'? ¿Qué espera '$ .makeArray ({a: 'b', c: 'd'})' para hacer? ¿Qué espera encontrar el servidor en '$ _POST ['images']'? –