541
C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más / Re:Ajax, PhP y JavasCript. Juego Adivina el número.
« en: 16 de Diciembre 2016, 20:33 »
El archivo aciertaNumeroJSON.php quedaría así:
Y en la función inicioJSON, al recibir un string de este estilo:
la función quedaría así:
Código: [Seleccionar]
<?php
session_start();
@header("Content-type: text/xml");
$xml = '<?xml version="1.0" encoding="utf-8"?>' . "\n";
$xml .= '<resp>' . "\n"; //inciamos el XML
if(isset($_GET['inicio'])){ //se ha indicado iniciar un nuevo juego
$numeroAleatorio=rand(0,10);//seleccionamos un numero aleatorio entre 0 y 10
$_SESSION['numeroOculto'] = $numeroAleatorio;
$xml .= "<inicio>".$_SESSION['numeroOculto']."</inicio>" . "\n";//retornamos el numero generado
}else{
$numeroUsuario = $_GET['numero'];
$numeroOculto=$_SESSION['numeroOculto'];
if($numeroUsuario > $numeroOculto ){
$xml .= "<encontrado>no</encontrado>" . "\n";
$xml .= "<mensaje>Has introducido un valor demasiado alto"."s</mensaje>" . "\n";
}else {
if($numeroUsuario < $numeroOculto ){
$xml .= "<encontrado>no</encontrado>" . "\n";
$xml .= "<mensaje>Has introducido un valor demasiado bajo"."</mensaje>" . "\n";
}else{
$xml .= "<encontrado>si</encontrado>" . "\n";
$xml .= "<mensaje>Exacto!</mensaje>" . "\n";
}
}
}
//finalizamos la estructura XML
$xml .= '</resp>' . "\n";
$xml = str_replace(array("\n", "\r", "\t"), '', $xml); // removes newlines, returns and tabs
$xml = trim(str_replace('"', "'", $xml)); // cambia comillas dobles por comillas simples si las hubiese
$simpleXml = simplexml_load_string($xml); // crea un objeto xml de un string
echo(json_encode($simpleXml)); // crea un string con formato JSON
?>
Y en la función inicioJSON, al recibir un string de este estilo:
Código: [Seleccionar]
'{"inicio":"9"}'
Lo mejor a mi gusto es convertirlo en un objeto JSON con la siguiente línea:Código: [Seleccionar]
var obj = JSON.parse(respuesta);
Y después mostrar su contenido por consola como en el ejercicio anterior, de la siguiente forma:Código: [Seleccionar]
console.log("El número aleatorio que devuelve la consulta es: ", obj.inicio);
la función quedaría así:
Código: [Seleccionar]
function inicioJSON() {
var xmlHttp = new XMLHttpRequest();
var urlDestino = "aciertaNumeroJSON.php?inicio=hola";
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
var respuesta = xmlHttp.responseText;
console.log(respuesta, typeof respuesta);
var obj = JSON.parse(respuesta);
console.log(obj, typeof obj);
console.log("El número aleatorio que devuelve la consulta es: ", obj.inicio);
document.getElementById('mensaje').innerHTML = "Se ha generado un nuevo numero";
}
};
xmlHttp.open("GET", urlDestino, true);
xmlHttp.send();
}
![Sonreir ;D](https://aprenderaprogramar.com/foros/Smileys/default/grin.gif)