Es que esta mal la forma en la que estas mandando la respuesta del callback... Si es texto plano, porque simplemente no lo imprimes??
eval() lo que haces es
evaluar una cadena de texto como si fuera codigo!
Deberias hacer algo asi:
Código PHP:
....
# Esto esta bien
$json="var json={div:' ".$i." ', status:' ".$status." '}";
....
#Luego en la respuesta
echo $json;
Luego en tu javascript, uina vez que preparas el elemento en donde se mostrara la respuesta de tu peticion asincrona, haces asi
Código Javascript
:
Ver original// Supongamos que la variable ajax contiene a la instancia de la clase XMLHttpRequest
if(ajax.readyState == 4){
if(ajax.status == 200){
// Siempre con doble parentesis
var json = eval('(('+ajax.responseText+'))');
// Como devolviste un array
for(var i = 0; i < json.length; i++){
document.getElementById('tuID').innerHTML += json[i]+'<br />';
}
}
}