Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia ....
Estou com o seguinte trecho de código em um arquivo
$file = 'relXLSX/'.fConsultaPrecoXLSX($wResultado, $auxLista, $auxDsFornecedor, $auxDsLoja);
$mensagem = 'Lista foi gerada com sucesso!';
echo json_encode(array('rst' => True,'msg' => $mensagem,'arquivo' => $file));
Na $file tem o caminho de um arquivo xlsx que sera exportado por exemplo 'relXLSX/arquivo.xlsx'.
Em um outro arquivo tenho uma chamada em Ajax que está da seguinte forma:
jQuery.ajax({
type: "POST",
url: "request_cons_preco.php",
data: dados,
cache: false,
beforeSend: function() {;
$('#resultConsulta').html("<img src='img/aguarde.gif' />");
},
success: function(e) {
$('#resultConsulta').html(e);
var obj = JSON.parse(e); //dessa forma obj retorna vazio
alert(obj);
}
A linha $('#resultConsulta').html(e); mostra na tela o valor de (e) = **{"rst":true,"msg":"Lista foi gerada com sucesso!","arquivo":"relXLSX\/afba20646f4c9e13980f95ed705a9ef3.xlsx"}**, ou seja os dados vindos do json_encode.
Gostaria de saber porque a var obj está retornando vazia ?
Obs se eu escrever a linha dessa forma **var obj = JSON.parse('{"rst":true,"msg":"Lista foi gerada com sucesso!","arquivo":"relXLSX\/afba20646f4c9e13980f95ed705a9ef3.xlsx"}'); , **o resultado funciona..
Se alguém puder me ajudar eu agradeço.Fiz um console.log no (e) para ver o q retorna e olha só (imagem do anexo) .... ele traz o html todo e não somente o objeto do json ....
Sabe o porque disso ?

o PHP está rodando (em caso de localhost wamp xampp e etc)?
Sim Sim .. rodando pelo wamp.
Fiz de uma outra forma.. e consegui o resultado esperado ...
$('#btn_GerarConsultaXLSX').click(function() {
var wCodProd = $('#cns_codProd').val();
var wDescricaoProd = $('#cns_descricaoProd').val();
var wListaBaseAtual = $('#cns_lista_base_atual').val();
var wFornecedor = $('#cns_fornecedor').val();
var wLoja = $ ('#cns_loja').val();
$.post( "gera_excel.php",
{ACAO: 'GERAR_EXCEL',
cns_codProd: wCodProd,
cns_descricaoProd: wDescricaoProd,
cns_lista_base_atual: wListaBaseAtual,
cns_fornecedor: wFornecedor,
cns_loja: wLoja},
function( data ) {
console.log( data.rst);
console.log( data.msg);
console.log( data.arquivo);
if (data.rst){
$('#resultConsulta').html(data.msg);
setTimeout(function(){
window.location = data.arquivo;
}, 1000);
} else {
$('#resultConsulta').html(data.msg);
$('#resultConsulta').html("<p>Mensagem de teste</p>");
} ;
}, "json");
});
Utilizando dessa forma deu certo ....
Alem disso criei um arquivo php específico para gerar o arquivo em Excel.
Agradeço a ajuda.
Pra mim não retornou vazio. (removi o arquivo no json pra facilitar o teste).