Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rochajl

[Resolvido] Alterar valor html via jquery

Recommended Posts

Tenho um script php que dá um select em uma tabela e me retorna o código e valor dos produtos e o resultado jogo para um array json:

 

[{"codbarra":"153","preco":"19.90"},{"codbarra":"156","preco":"15.98"},{"codbarra":"157","preco":"16.98"},{"codbarra":"158","preco":"14.98"},{"codbarra":"159","preco":"14.90"},{"codbarra":"161","preco":"14.98"},{"codbarra":"162","preco":"11.98"},{"codbarra":"164","preco":"13.49"},{"codbarra":"165","preco":"11.98"},{"codbarra":"167","preco":"9.90"},{"codbarra":"168","preco":"8.98"},{"codbarra":"169","preco":"14.98"},{"codbarra":"176","preco":"4.98"},{"codbarra":"177","preco":"10.00"},{"codbarra":"192","preco":"1.89"},{"codbarra":"220","preco":"6.98"},{"codbarra":"2257","preco":"2.99"},{"codbarra":"226","preco":"6.98"},{"codbarra":"2604","preco":"11.98"},{"codbarra":"295","preco":"19.90"},{"codbarra":"383","preco":"13.98"},{"codbarra":"594","preco":"12.99"}]

 

Tenho uma tabela para visualizar os produtos com os preços. O que fiz foi utilizar o código como classe para cada célula de preço (utilizei como classe, pois posso ter mais de uma tabela montada e um produto pode se repetir em mais de uma tabela, como o ID tem que ser único não pude usar o código como ID).

 

Até aqui tudo tranquilho. O que quero fazer é: se houver uma alteração de preço no banco de algum produto, gostaria de altera-lo na tabela, para isso, rodo o script php, monto o array e através do código abaixo estou tentando fazer isso:

 

function mudaprecotela(){

$(document).ready(function(){

$.ajax({

url: "buscapreco.php",

dataType: "json",

success: function(json){

$.each(json, function(key, value){

//alert("'." + value.codbarra + "'" + " - " + value.preco);

$("'." + value.codbarra + "'").html(value.preco);

});

}

});

});

};

 

O alert é só para verificar se a informação está ok.

Se vou na linha $("'." + value.codbarra + "'").html(value.preco); e altero para $('.153').html(value.preco); por exemplo, ele pega o produto de código 153 e coloca o último preço do array "12.99". Se deixo só o alert, ele me mostra código e preço, um por um, corretamente.

Alguém poderia me ajudar e mostrar o porque da função não alterar o html.

Grato pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso parece ser escopo, eu tinha os mesmos problemas, voce esta usando algum evento posterior, como um click por exemplo, para mudar o valor?

tenta colocar, la no each do teu jquery

$.each(json, function(key, value){
   (function(value){
         $("'." + value.codbarra + "'").html(value.preco);
   })(value);
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

Sim, uso setInterval("mudaprecotela()",60000); para chamar a função de minuto em minuto.

Estou tentando aqui, mas ainda não consegui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu certo aqui. O problema foi era a concatenação. Onde está:

$("'." + value.codbarra + "'").html(value.preco); é só deixar:

$('.' + value.codbarra).html(value.preco);

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.