La cuestión es que no lo consigo, creo que me falla el json, pero es que no sé qué hago mal...
html:
Código:
javascript<html> <head> <title>New Document</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <link href="css.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="ajax.js"></script> </head> <body> Elegir directorio: <input type='file' name='archivo' id='archivo' onChange="traerDatos('ruta')" /> <div id="demoArr">Datos cargados asincrónicamente</div> </body> </html>
Código:
function nuevoAjax() { /* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por lo que se puede copiar tal como esta aqui */ var xmlhttp=false; try { // Creacion del objeto AJAX para navegadores no IE xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { // Creacion del objet AJAX para IE xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch(E) { xmlhttp=false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp=new XMLHttpRequest(); } return xmlhttp; } function traerDatos(tipoDato) { ruta=document.getElementById("archivo").value; dir=JSON.parse(ruta); // Obtendo la capa donde se muestran las respuestas del servidor var capa=document.getElementById("demoArr"); // Creo el objeto AJAX var ajax=nuevoAjax(); // Coloco el mensaje "Cargando..." en la capa capa.innerHTML="Cargando..."; // Abro la conexión, envío cabeceras correspondientes al uso de POST y envío los datos con el método send del objeto AJAX ajax.open("POST", "accion.php", true); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajax.send("directorio="+dir); ajax.onreadystatechange=function() { if (ajax.readyState==4) { if (ajax.status==400) { capa.innerHTML="solicitud incorrecta"; } // Respuesta recibida. Coloco el texto plano en la capa correspondiente capa.innerHTML=ajax.responseText; } } }
Código:
Gracias, un saludo :D php <?php include ('json.php'); $directorio=$_POST[directorio]; $objeto_json=new Services_JSON(); $ruta=$objeto_json->decode($directorio); echo "Ruta: $ruta"; ?>