Estoy intentando hacer que a partir de unos valores que obtengo con javascript, pueda crear un archivo txt para que el usuario lo pueda descargar. El tema de crear el txt es facil, y el de enviar los datos que tengo en js a php, creia que tbn lo seria pero se me esta resistiendo.
Aqui les dejo el codigo completo para que vean como esta:
Archivo HTML
Código:
Archivo PHP<html> <head> <title>Crear txt</title> <script type="text/javascript"> //funcion que simplemente crea un objeto ajax function newAjax(){ var xmlhttp=false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } return xmlhttp; } //funcion que envia los datos que obtiene mediante ajax para poder crear el txt en php function sendData(url){ var nombre = "Antonio"; var edad = 22; var direccion = "Sevilla"; ajax = newAjax(); var data = ""; data = 'nombre='+nombre+'&edad='+edad+'&direccion='+direccion; ajax.open("POST", url, true); ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1'); ajax.send(data); //el siguiente codigo esta comentado pq no necesito actualizar el div /*ajax.onreadystatechange = function () { if (ajax.readyState == 4) { document.getElementById('result').innerHTML = ajax.responseText; } }*/ } </script> </head> <body> <input type="button" onclick="sendData('maketxt.php');"value="test" /> <div id="result"></div> </body> </html
Código:
Explicado de una forma facil:<? header("Content-type: application/text"); header("Content-Disposition: filename=\"archivo.txt\";"); $nombre = $_POST['nombre']; $edad = $_POST['edad']; $direccion = $_POST['direccion']; $file = "nombre: ".$nombre."</br>"; $file .= "edad: ".$edad."</br>"; $file .= "direccion: ".$direccion."</br>"; print $file;
1.El usuario clica el boton con valor test y este llama a la funcion sendData con el nombre del archivo php donde creare el txt
2.Dentro de la funcion sendData, se crea el objeto Ajax y se envian los datos a maketxt.php mediante post
3. En el archivo maketxt.php, pongo lo que quiero que aparezca en el txt y lo imprimo, para que aparezca el dialogo de descarga de txt, pero en ajax parece que no funciona de todo bien.
Obviamente, si descomento las lineas:
Código:
Introduce el text dentro del div 'result', pero yo lo que quiero es que el usuario pueda descargar su archivo txt con ese contenido.//el siguiente codigo esta comentado pq no necesito actualizar el div /*ajax.onreadystatechange = function () { if (ajax.readyState == 4) { document.getElementById('result').innerHTML = ajax.responseText; } }*/
Alguien tiene alguna idea? Como podria pasar esos datos que tengo en js para poder meterlos en el archivo txt que quiero que el usuario puedas descargar?
Muchas gracias de antemano! : )