Eu tenho o seguinte código AJAX:
var ajax = new XMLHttpRequest();
axaj.open("POST", "index.php", true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajax.onreadystatechange = function(){
if(x.readyState == 4 && x.status == 200){
var returnVal = ajax.responseText;
}
}
ajax.send("nextMax=-1");
E combina com algum PHP que termina com:
echo json_encode(array(
"next_id" => $nextID
));
exit();
Tudo isso funciona como está. Se eu imprimir returnVal
dentro da chamada AJAX, imprime a matriz correta, com o valor correto:
{"next_id":"935210077606657948"}
Mas não consigo acessar o ID diretamente. Eu tentei
var nextID = returnVal.next_id;
e
var nextID = returnVal["next_id"];
e outras variações, mas todas retornam undefined
.
Como obtenho os elementos da matriz de dentro returnVal
?
Desde já, obrigado.
Respostas:
0 para resposta № 1Encontrei uma solução 30 segundos após postar a pergunta. Mas para aqueles que estão no mesmo lugar:
Interruptor
var returnVal = ajax.responseText;
para
var returnVal = JSON.parse(ajax.responseText);
e então a chamada funciona:
returnVal.next_id;