AFAIK, JS в браузере позволяет выполнять вещи только на стороне клиента и не изменять содержимое сервера без использования ... (например) сценариев PHP на стороне сервера.
Это решение (сейчас) использует только HTML и PHP, исключая необходимость в JS.
HTML (изменено) :
<form id="form" class="topBefore" action="createtext.php" method="GET">
<textarea id="message" type="text" placeholder="Hello" name="name"></textarea>
<textarea id="message2" type="text" placeholder="Hello" name="text"></textarea>
<input id="submit" type="submit" value="Download Text File">
PHP: (файл с именем createtxt.php )
if(isset($_GET['name']) && isset($_GET['text'])) {
$filename = preg_replace('#[^A-Za-z0-9_-]#', '', $_GET['name']);
$file = $_SERVER['DOCUMENT_ROOT']."/textfiles/$filename.txt";
$f = fopen($file, 'w');
fwrite($f, $_GET['text']);
fclose($f);
echo 'Success.';
} else {
echo 'Error.';
}
Для создания файла требуется двапараметры - имя файла и содержимое, в то время как в HTML-файле вопроса был указан только один textarea
.Так что теперь включено другое имя файла.JQuery / JS удаляется.Вместо этого форма теперь отправляет данные в createtext.php, который создает файл (fopen
), записывает текст (fwrite
) и отображает «Успех».- обратите внимание на две вещи:
- Мы сохраняем текстовый файл в папке с именем
textfiles
в том же каталоге, что и createtext.php
.Папка должна существовать раньше - она не будет создана автоматически, и PHP выдаст ошибку, если ее не будет. - Вы можете заменить
echo 'Success.';
другими действиями: например, перенаправлением на другую страницу или тем жестраница (header
) или echo
ing / readfile
-ing HTML-страницы.