Запись в текстовый файл онлайн урок.


В этом уроке научимся отправлять асинхронные POST запросы. В частности, научимся обновлять данные на сервере, сохраняя их в текстовый файл.

Для начала, разместим на страничке поле для вводе текста и кнопку. В данном случае нам совсем не обязательно помещать их в форму, т.к. отправкой данных будет заниматься скрипт.
<textarea id="textField" name="text"></textarea> <br/>
<input type="button" id="btn" value="Go"/>

Теперь создадим текстовый файл some_file.txt, пусть он будет пустой. Теперь создадим функцию, которая будет отправлять содержимое текстового поля при помощи асинхронного запроса.

function updateFile(obj)
{
   params = obj.name + '=' + obj.value;
   request.open('POST', '/test.php', true);
   request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   request.send(params);
}


Мы видим, что сначала формируется строка с параметрами. Она зависит от объекта документа obj. Далее мы подготавливаем POST запрос к скрипту test.php. Для того, чтобы на сервере сформировалась переменная $_POST в PHP необходимо также отправить заголовок запроса Content-type со значением application/x-ww-form-urlencoded. Остается отправить сам запрос, но в качестве параметра подставить переменную с параметрами. Точнее с одним параметром, в нашем случае.

Теперь обработаем клик по кнопке, вызвав этот метод.
<input onclick="updateFile(document.getElementById('textField'));" type="button" id="btn" value="Go"/>

Теперь запишем код скрипта test.php

<?php 
file_put_contents('some_file.txt', $_POST['text']);
echo 'Done';


Осталось добавить в обработчик изменения состояния запроса строку, которая выведет на экран полученные данные. В нашем случае это слово Done

request.onreadystatechange = function() {
   if (request.readyState == 4) {
     alert(request.responseText);
   }
};