Receber JSON
Opa,
Tenho uma página em que é executado um SetInterval de segundos em javascript, esta página captura os dados das divs e envia via post, sendo que estes dados enviados não são fixos, as vezes, pode ser enviado 1 ou mais de um. O valor de retorno em json deve ser enviado as divs contidas na div maior.
O formato de envio é :
function atualizaregistro()
{
$.ajaxSetup({
cache: false
});
var registros = $('.coupon_item').get().map(function(el) {
return el.id;
});
if (registros)
{
$.ajax({
url: '_files/_update_information.php',
dataType: 'json',
type: 'POST',
data: {registro_id: JSON.stringify(registros)},
success: function (data)
{
registros.forEach(function(id, i)
{
$('#' + id).find('.coupon-price').html(data[i].registro.preco);
$('#' + id).find('.coupon-user').html(data[i].registro.usuario_nome);
});
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
}
});
}
setTimeout('atualizaregistro()', 1000);
}
$(document).ready(function() {
atualizaregistro();
});
E no PHP.
$registros = json_decode($_POST['registro_id']);
foreach($registros as $registro_id)
{
. .. .. ..
$retorno_send = '{"registro":{"preco":"'.$preco.'","usuario_nome":"'.$username.'"}}';
}
echo "[".$retorno_send."]";
O problema é; Se envio apenas um ID para o php o json é enviado corretamente, mas, se é enviado mais de um ID o php recebe os ID, mas, é reenviado para o javascript apenas as informações referentes ao último ID enviado.
Ex.: Ao enviar os ID 1 e 3, o foreach é executado e envia os dados apenas referente ao 3.
O que há de errado?
Discussão (5)
Carregando comentários...