如何从后端页面更改此文本?

时间:2019-04-22 14:39:07

标签: php html

我正在尝试从文本文件“ 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”的txt文件,通过“保存”按钮将文本保存到文件中,然后滚动的msg框将读取该文件

我的问题是:

  • 滚动文本框未从文件中读取
  • 保存按钮不会保存到文件中,只是打开文件!

我在做什么错了? 对不起,我知道那是一团糟,但我正在尝试学习。

3 个答案:

答案 0 :(得分:2)

您必须将action标记设为空白才能执行if语句内部的PHP代码

更改

action="msg.txt"

action=""

如果您要对PH进行编码,则应使用action标签中的php文件,不能对txt文件执行任何操作。

要将文本每次附加到现有文件中,请使用

$txt = "This is text";
$myfile = file_put_contents('text_file.txt', $txt.PHP_EOL , FILE_APPEND | LOCK_EX);

答案 1 :(得分:1)

在这里您可以使用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 file\n".file_get_contents("../msg.txt");
        }
    } else {
        die('no post data to process');
    }
?>

答案 2 :(得分:0)

您正在将表单数据提交到文本文件,文本文件将无法处理表单数据。

您需要将数据发送到php文件,在这种情况下,只需从form标签中删除操作即可。