#php #html
#php #HTML
Вопрос:
Я пытаюсь сделать текстовое поле прокрутки на странице «front-end page» считываемым из текстового файла «msg.txt «
<div class="scroll-slow">
<?php echo file_get_contents('../msg.txt'); ?>
</div>
Я добавил этот код для добавления текстового поля и кнопки сохранения в моем бэкэнде:
<html>
<head>
<title></title>
</head>
<body>
<form action="msg.txt" method="POST">
<input name="field1" type="text" />
<input type="submit" name="submit" value="Save">
</form>
</body>
</html>
<?php
if(isset($_POST['field1'])) {
$data = $_POST['field1'] . "n";
$ret = file_put_contents('../msg.txt', $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
die('There was an error writing this file');
} else {
echo "$ret bytes written to file";
}
} else {
die('no post data to process');
}?>
Также я включил текстовый файл под названием «msg.txt » в моем корне, чтобы кнопка сохранения сохраняла текст в файл, прокручиваемое поле msg будет считывать файл
Моя проблема в том:
- Текстовое поле прокрутки не считывается из файла
- Кнопка сохранить не сохраняет в файл, а просто открывает файл!
Что я делаю не так?Извините, я знаю, что это беспорядок, но я пытаюсь учиться.
Ответ №1:
Вы должны сделать action
тег пустым, чтобы выполнить PHP
код, который находится внутри оператора if
Изменить
action="msg.txt"
Для
action=""
Если вы занимаетесь кодированием на PH
, вы должны использовать php file в action
теге, вы не можете выполнять какие-либо действия с txt
файлом.
Чтобы добавлять текст каждый раз к существующему файлу, используйте
$txt = "This is text";
$myfile = file_put_contents('text_file.txt', $txt.PHP_EOL , FILE_APPEND | LOCK_EX);
Комментарии:
1. Хорошо, мне понравилось то, что вы сказали, теперь он сохраняется в файл, но текст добавляется в файл, который не обновляется. поэтому каждый раз, когда я сохраняю текст, он будет добавлен рядом со старым
2. @Somebody вы хотите добавлять значение поля каждый раз при отправке формы?
Ответ №2:
Здесь вы можете использовать jquery и ajax для получения активного значения текста
$.ajax({
url: "backendFile.php",
type: "post",
data: {
text: $("input[name='field1']").val()
},
success: (e) => {
$(".scroll-slow").html(e)
}
}
Ваш backendFile.php
<?php
if(isset($_POST['field1'])) {
$data = $_POST['field1'] . "n";
$ret = file_put_contents('../msg.txt', $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
die('There was an error writing this file');
} else {
echo "$ret bytes written to filen".file_get_contents("../msg.txt");
}
} else {
die('no post data to process');
}
?>
Ответ №3:
Вы отправляете данные формы в текстовый файл, текстовые файлы не смогут обрабатывать данные формы.
Вам нужно отправить данные в файл php, в вашем случае сработает простое удаление тега action из form.