从HTML获取价值并使用PHP存储在TXT文件中

时间:2020-09-21 16:54:08

标签: javascript php html

我有一个程序,我通过JavaScript选择一个随机单词,并且每次页面刷新或有人访问它时,这个单词都会更改。

从广义上看,它是这样的(index.php文件的相关位):

<p> this is a <span class=“randomWord”></span> </p>

<script>:
let randomArray = [clarinet, chair, bubble, sofa, plant]
let randomNo = Math.floor(Math.random() * (randomArray.length -1) );
let randomW = document.querySelector(‘.randomWord’);

randomW.textContent =  randomArray[randomNo];

</script>

我要做的是存储这个随机词(来自randomW.textContent)。我想生成一个.txt文件并将其存储(如果是第一次访问),或者将其连接到现有的.txt文件中,以与之前访问时的其他任何字词无关。

例如,在访问5次后,网站将显示“这是一个单簧管”,而txt文件将是:chair bubble bubble sofa clarinet

我有使用HTML5,CSS和JS的经验,但是PHP对我来说仍然是一个未知数,因此不确定如何解决它。任何帮助或指导将不胜感激! 谢谢!

2 个答案:

答案 0 :(得分:0)

最简单的方法是创建一个<form>元素,并使action属性指向一个您在其中处理服务器逻辑的PHP文件。在这种情况下,我使用了POST方法。在表单内部放置一个<input>元素,该元素将从JavaScript接收随机单词到其value属性中。此输入将是发送到服务器的数据。

<form action="/save-random-word.php" method="POST">
  <input type="hidden" id="randomW" name="randomW" value="" />
  <button type="submit">Save random word</button>
</form>

在JavaScript中创建您的随机词,并使用随机词字符串设置输入元素的value。现在,如果您要提交表格,则将发送随机单词。

let randomArray = ['clarinet', 'chair', 'bubble', 'sofa', 'plant']
let randomNo = Math.floor(Math.random() * (randomArray.length -1) );
let randomW = document.querySelector('#randomW');

randomW.value = randomArray[randomNo];

现在,服务器具有一种接收通过POST,GET或其他方法发送的数据的方式。自从我使用POST以来,我们需要检查全局$_POST数组是否包含与我们输入的name属性同名的键。在那里,您将找到数据。

如果.txt文件尚不存在,则创建一个新文件,或者读取该文件,并在文件内容之间添加一个带空格的随机单词,并再次存储带有添加内容的文件

$randomW = isset( $_POST[ 'randomW' ] ) ? $_POST[ 'randomW' ] : '';
$file_name = './values.txt';

if ( ! is_file( $file_name ) ) {
  file_put_contents( $file_name, $randomW );
} else {
  $file_content = file_get_contents( $file_name );
  $file_content .= ' ' . $randomW;
  file_put_contents( $file_name, $file_contents );
}

die();

答案 1 :(得分:0)

PHP部分

<?php  
$fp = fopen('/path/to/words.txt', 'a'); //opens file in append mode  
fwrite($fp, $_POST['word']."\n");
fclose($fp);
?> 

在Javascript端,向此PHP脚本发出POST请求,以发送单词变量。