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,
em uma página envio uma requisição por jquery para outra página e o retorno vem em json.
Preciso recuperar no PHP um dos valores JSON retornados, como devo fazer?
No jquery pego o valor assim:
$(".retorno").html(json.mensagem);
mas como faço para recuperar no PHP?
$json = json_decode($json, true);
Não está funcionando.
se eu uso var_dump(json_decode($json, true)); ele retorna NULL
Agradeço desde já
Origada pela atenção Luis Paullo
mas ele continua NULL
será que é porque eu trato no jquery antes?
var_dump(json_decode($_POST['json'],true));
success: function(json){
// console.log( json );
$(".dados_cliente").hide('slow');
$(".retorno").html(json.mensagem).show('fast');
$("#carrinho").show('slow');
}//successVocê esta entendendo errado regina..
essa forma que voce esta fazendo não retorna nada pro PHP..
você precisa pega a resposta do PHP com o Jquery certo?
Ou o contrário?
Pra esse seu codigo é assim:
//php request
echo json_encode(array('mensagem'=>'Retorno em JSON'));
//ajax get response jquery
success: function(json){
console.log( json );
$(".dados_cliente").hide('slow');
$(".retorno").html(json.mensagem).show('fast');
$("#carrinho").show('slow');
}//successVou tentar explicar todo o projeto para você:
É uma lista de casamento, onde o visitante vê os presentes pedidos e clica para comprar.
Ao clicar o jquery pegar os valores e enviar para o php que retorna via json.
Preciso retornar um id gravado no banco e jogá-lo em um input, pelo jquery eu consigo porém tem um momento que eu preciso enviar outros dados pelo próprio php e esse dado que é importante não vai.
qual a melhor forma de conseguir fazer isso?
Agradeço pela atenção Luis Paullo
Na versão em inglês do Manual PHP existe uma explicação mais completa dos valores retornados por json_decode(), dentre eles, o porquê do seu NULL:
NULL is returned if the json cannot be decoded or if the encoded data is deeper than the recursion limit.
Numa tradução livre, ou ocorreu uma falha na decodificação do JSON ou o nível o JSON possui uma hierarquia estrutural muito profunda.
Para saber EXATAMENTE qual o erro, dê um var_dump() depois de invocar json_decode() depurando o retorno de json_last_error()
Talvez seja um pouco difícil de comparar o código do erro com o erro real, já que json_last_error() retorna um número inteiro.
Mas você pode copiar o bloco switch do exemplo do Manual e ver em qual case cai.
um momento que eu preciso enviar outros dados pelo próprio php e esse dado que é importante não vai.
faz outra requisição enviando esse novos dados..
posta mais do codigo ai, talvez fique mais facil de te ajuda!
$(".retorno").html(json.mensagem);
isso voce pega o json no javascript! Não passa nd pro PHP
pra submeter pro PHP um json use POST
// passo pro jquery o json - pego com '$(".retorno").html(json.mensagem);'
echo json_encode(array('mensagem'=>'Retorno em JSON'));
//pego um json e converto pra array
var_dump(json_decode($_POST['json'],true)); // json vindo do ajax