|
||
domingo julio 10, 2016 24 - De JSON a PHP (utilizando la función json_decode)Ahora nos queda ver como en el servidor recibir datos con formato JSON y proceder a generar una clase en PHP mediante la función json_decode. La sintaxis es: $cad=json_decode(stripslashes($_REQUEST['cadena'])); echo 'Nombre:'.$cad->nombre; ... ... Es decir la función json_decode recibe como parámetro una cadena con datos codificados en JSON y procede a retornar la información en un objeto. Confeccionaremos un problema que envíe desde el navegador información en formato JSON y en el servidor la convertiremos en un objeto de PHP y procederemos a generar un trozo de HTML que retornaremos al navegador para que lo muestre. El archivo pagina1.html addEventListener('load',inicializarEventos,false); function inicializarEventos() { var ref=document.getElementById('boton1'); ref.addEventListener('click',botonPresionado,false); } function botonPresionado(e) { var obj={ nombre:'juan', edad:25, sueldos:[1200,1700,1990] }; var cadena=JSON.stringify(obj); enviarDatos(cadena); } var conexion1; function enviarDatos(cadena) { conexion1=new XMLHttpRequest(); conexion1.onreadystatechange = procesarEventos; conexion1.open('GET','pagina1.php?cadena='+cadena, true); conexion1.send(null); } function procesarEventos() { var resultados = document.getElementById("resultados"); if(conexion1.readyState == 4) { resultados.innerHTML = conexion1.responseText; } else { resultados.innerHTML = "Cargando..."; } } Cuando se presiona el botón procedemos a partir de un objeto JavaScript generar una cadena en formato JSON, luego procedemos a llamar a la función enviarDatos: function botonPresionado(e) { var obj={ nombre:'juan', edad:25, sueldos:[1200,1700,1990] }; var cadena=JSON.stringify(obj); enviarDatos(cadena); } La función enviarDatos procede a crear un objeto de la clase XMLHttpRequest y pasa mediante el parámetro GET la cadena en formato JSON: var conexion1; function enviarDatos(cadena) { conexion1=new XMLHttpRequest(); conexion1.onreadystatechange = procesarEventos; conexion1.open('GET','pagina1.php?cadena='+cadena, true); conexion1.send(null); } Solo queda mostrar el trozo de datos en HTML que retorna el servidor: function procesarEventos() { var resultados = document.getElementById("resultados"); if(conexion1.readyState == 4) { resultados.innerHTML = conexion1.responseText; } else { resultados.innerHTML = "Cargando..."; } } Lo nuevo se centra en el archivo pagina1.php: <?php $cad=json_decode(stripslashes($_REQUEST['cadena'])); echo 'Nombre:'.$cad->nombre; echo '<br>'; echo 'Edad:'.$cad->edad; echo '<br>'; echo 'Primer sueldo:'.$cad->sueldos[0]; echo '<br>'; echo 'Segundo sueldo:'.$cad->sueldos[1]; echo '<br>'; echo 'Tercer sueldo:'.$cad->sueldos[2]; ?> La función que convierte una cadena con formato JSON en un objeto de PHP es: $cad=json_decode(stripslashes($_REQUEST['cadena'])); Recordemos que con la función stripslashes sacamos los caracteres de escape(barras invertidad para las comillas entre otras) Luego podemos fácilmente acceder a los atributos del objeto con la sintaxis: echo 'Nombre:'.$cad->nombre; echo '<br>'; echo 'Edad:'.$cad->edad; echo '<br>'; echo 'Primer sueldo:'.$cad->sueldos[0]; echo '<br>'; echo 'Segundo sueldo:'.$cad->sueldos[1]; echo '<br>'; echo 'Tercer sueldo:'.$cad->sueldos[2]; Problema resuelto.Confeccionar un problema que envíe desde el navegador información en formato JSON y en el servidor convertirla en un objeto de PHP y proceder a generar un trozo de HTML que retorne al navegador para que lo muestre. pagina1.html Ejecutar ejemplo funciones.js pagina1.php Retornar |
||
— @SergioAleman1
— @bolUDOoficial
Comenta o lee lo que otros opinan |
||
COMPÁRTELO:Indica que te gusta y comparte |
||
![]() ![]() ![]() ![]() ![]() |
||
También te puede interesar: Validación de la existencia de un nombre de usuario en forma asincrónica (AJAX) |
||
« De JSON a JavaScript (utilizando utilizando la función parse) | Pizarra interactiva multiusuario » |
||
![]() |
||
Buscador:
|
||
Síguenos en las redes sociales![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Mis cuentas socialesOtras | LinktreeMóvil: 0412 8226575 - E-mail: [email protected] - [email protected] - WhatsApp: +58 (0412) 822.65.75 ![]() |
||
|
||
|