Non riesco a capire come leggere correttamente la mia risposta JSON da una richiesta jQuery $ .post().
Nella sottostante Codice jQuery, ho popolano un array associativo di stringhe da elementi dal DOM basato sul corrispondente "color_entry_id" che uso come chiave:
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;
});
poi faccio la richiesta POST, invio la mia serie di "link_immagine":
$.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);
});
}
);
Inoltre, come sopra indicato, cerco di scorrere la matrice di risposta e di uscita di ogni voce, che voglio essere una stringa, ma ho solo "[object Object ] "come valore avvisato. Non so come farlo visualizzare le stringhe che sto cercando di mostrare!
Ecco il codice PHP per test.php:
<?php
$product_id = $_POST['id'];
$images = $_POST['images'];
$response = array();
$response['id'] = $product_id;
$response['images'] = $images;
echo json_encode($response);
?>
Ed ecco ciò che la parte rilevante del DOM assomiglia:
<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>
Mi chiedo se forse sto facendo la codifica JSON in modo errato sul lato PHP o se sto scorrendo la risposta in modo errato nel jQuery. Ogni aiuto è molto apprezzato!!
Cosa si aspetta 'makeArray' fare per il vostro' oggetto image_links'? E avrai più fortuna con 'console.log' per il debug,' alert' fa un casino di cose quando le stringe. –
Hmm, questo è quello che avevo usato in precedenza per un'applicazione diversa che funzionava bene. Non dovrei usarlo? – jrubins
Ma perché stai usando 'makeArray'? Cosa ti aspetti '$ .makeArray ({a: 'b', c: 'd'})' da fare? Qual è il server che si aspetta di trovare in '$ _POST ['images']'? –