我有一个程序,我通过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对我来说仍然是一个未知数,因此不确定如何解决它。任何帮助或指导将不胜感激! 谢谢!
答案 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请求,以发送单词变量。