Escribir en un archivo con jQuery, Ajax y PHP

En este artículo vamos a ver como escribir o crear un archivo .txt con jQuery, Ajax y PHP. Emplearemos estas tecnologías solo por el simple hecho de no tener que recargar la página tras enviar el formulario.

En el ejemplo en funcionamiento tendremos un formulario con un campo textarea donde introduciremos el texto que deseamos guardar en el archivo. Por motivos de seguridad, hemos deshabilitado la opción de introducir código HTML.

En el <body> de nuestra página vamos a tener el siguiente formulario:

<form id="form" method="post">
    Texto:<br/>
    <textarea name="data" id="data" rows="7" cols="84" placeholder="Escribe aqui un texto..."></textarea>
    <a href="#" id="save">Guardar</a>
</form>

Donde simplemente tendremos un campo de texto (textarea) y un botón o link.

En el <head> de esta misma página incluiremos la librería jQuery y los scripts necesarios para llevar a cabo la funcionalidad principal del ejemplo:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#save').live('click', function() {
        var dataString = 'data='+$('textarea#data').val();
        $.ajax({
            type: "POST",
            url: "writetxt.php",
            data: dataString,
            success: function(data) {
                //alert(data);
                $('form').remove();
                $('.content').append('<p>Tu texto se ha guardado correctamente!</p><a href="data.txt" target="_blank">Ver</a>');
            }
        });
        return false;
    });
});
</script>

El código anterior simplemente está esperando a que se pulse en el botón o link con id=»save» para capturar la información que se ha introducido en el campo de texto con id=»data» (textarea) y mediante la técnica AJAX enviamos esa información a un archivo php que será el encargado de escribir esta información enviada en el archivo .txt.

El archivo .php tendrá el siguiente contenido:

<?php
require_once("classes/class.inputfilter.php");
$ifilter = new InputFilter();
$data = $ifilter->process($_POST['data']);
$file = 'data.txt';

if (isset($data)) {
    $fp = fopen($file, 'w');
    fwrite($fp, utf8_decode($data));
    fclose($fp);
    chmod($file, 0777);
    echo 'Se han guardado correctamente la información en el txt!';
}
else {
    echo 'No hay datos que guardar!';
}
?>

En este archivo lo primero que hacemos es recibir los datos enviados mediante el método POST y utilizar un técnica para evitar el XSS con la clase inputfilter de PHP, entonces si hay información que guardar, abrimos el fichero y escribimos en él la información recibida.

Ver ejemplo en funcionamiento

Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Te ha servido? Valora esta entrada!
(12 votos, promedio: 5 de 5)
Comparte en las redes sociales
¿Buscas trabajo de programador?

5 respuestas a “Escribir en un archivo con jQuery, Ajax y PHP”

  1. Pedro dice:

    Articulo corto y sencillo, pero conciso. Me ha sido de gran ayuda para empezar a hacer unas pruebas. Gracias!

  2. guillermo diaz dice:

    Hola buenas, se podría hacer eso mismo, pero en lugar de escribir todo el txt, acceda a el, busque una variable y sobreescriba solamente el valor asignado a la misma, sin modificar el resto del archivo?

    Gracias!

    • Jose Aguilar dice:

      Si, podrías buscar esa variable con una función de php para buscar cadenas dentro de cadenas y volver a rellenar el archivo con el contenido completo. Puedo que haya otras opciones pero no las tengo en mente.

  3. marcos dice:

    Hola me podrias pasar el codigo de ejemplo gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Ver más sobre