使用php和javascript将随机数放入txt文件

使用php和javascript将随机数放入txt文件,javascript,php,html,Javascript,Php,Html,我有一个带有按钮的文本输入字段,该按钮生成一个介于1和20之间的随机数,并显示在文本字段中。我遇到的问题是,将它生成的随机数保存到一个.txt文件中。文件chat.txt与这些文件的其余部分存储在同一目录中。我不确定我的做法是否正确。下面是代码。任何想法都会有帮助 chat.php: <div id="pageWrap"> <form action="roll.php" name="rollBox" method="post"> <input type="text"

我有一个带有按钮的文本输入字段,该按钮生成一个介于1和20之间的随机数,并显示在文本字段中。我遇到的问题是,将它生成的随机数保存到一个.txt文件中。文件chat.txt与这些文件的其余部分存储在同一目录中。我不确定我的做法是否正确。下面是代码。任何想法都会有帮助

chat.php:

<div id="pageWrap">
<form action="roll.php" name="rollBox" method="post">
<input type="text" name="roll" id="demo">
<button type="button" name="button" onclick="myFunction()">Roll</button>

<script>
function myFunction()
{
var x=document.getElementById("demo")
x.value=Math.floor((Math.random()*20)+1);
}
</script>

<h2>Chat</h2>
    <p id="name-area"></p>
    <div id="chatWrap"><div id="chat-area"></div></div>

    <form id="send-message-area">
        <p>Your message: </p>
        <textarea id="sendie" maxlength = '100' ></textarea>
    </form>

</div>

滚
函数myFunction()
{
var x=document.getElementById(“演示”)
x、 值=数学地板((数学随机()*20)+1);
}
聊天

您的留言:

roll.php:

<?php

if(isset($_POST['button']))
{
    $roll = $_POST['roll'];
    $file = fopen("chat.txt");
    fwrite($file,$roll);
    fclose($file); 
    print_r(error_get_last());
}
?>

为什么不在PHP中生成随机数,然后将其与
file\u put\u contents()
一起放入文件中

<?php
    $roll = rand(1,20);
    file_put_contents("chat.txt",$roll);


?>


随机数仅在客户端生成:您尚未将其发送到服务器。您正在启动一个表单(
name=rollbox
),但没有将其发送回服务器(而且您似乎缺少一个
。提交表单,或者使用AJAX将信息发送到后端。

您的顶级表单的HTML有一些问题

尝试将其替换为以下代码:

<form action="roll.php" name="rollBox" method="post">
   <input type="text" name="roll" id="demo">
   <input type="submit" name="button" onclick="myFunction();" value="Roll">
</form>

如果您对使用javascript在客户端生成随机数的方式感兴趣:

关于html:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

<div id="pageWrap">
    <form action="page.php" id="rollBox" name="rollBox" method="post">
        <input type="text" name="roll" id="demo">

        <button type="submit" name="submit" >Roll</button>
        <script>
        $(document).ready(function () {
            $('#rollBox').submit(function(e) {
                var x=document.getElementById("demo");
                x.value=Math.floor((Math.random()*20)+1);
                e.preventDefault();
                var obj = $(this), // (*) references the current object/form each time
                url = obj.attr('action'),
                method = obj.attr('method'),
                data = {};
                obj.find('[name]').each(function(index, value) {
                    var obj = $(this),
                    name = obj.attr('name'),
                    value = obj.val();
                    data[name] = value;
                });
                $.ajax({
                    url: url,
                    type: method,
                    data: data,
                    success: function(response2) {}
                });
                return false; 
            });
        });
        function myFunction()
        {
            var x=document.getElementById("demo")
            x.value=Math.floor((Math.random()*20)+1);
            document.getElementById("rollBox").submit();
        }
        </script>
    </form>
    <h2>Chat</h2>
    <p id="name-area"></p>
    <div id="chatWrap"><div id="chat-area"></div></div>

    <form id="send-message-area">
        <p>Your message: </p>
        <textarea id="sendie" maxlength = '100' ></textarea>
    </form>

</div>

滚
$(文档).ready(函数(){
$('#rollBox')。提交(函数(e){
var x=document.getElementById(“演示”);
x、 值=数学地板((数学随机()*20)+1);
e、 预防默认值();
var obj=$(this),//(*)每次都引用当前对象/表单
url=obj.attr('action'),
方法=对象属性(“方法”),
数据={};
obj.find('[name]')。每个(函数(索引,值){
var obj=$(此),
name=obj.attr('name'),
value=obj.val();
数据[名称]=值;
});
$.ajax({
url:url,
类型:方法,
数据:数据,
成功:函数(response2){}
});
返回false;
});
});
函数myFunction()
{
var x=document.getElementById(“演示”)
x、 值=数学地板((数学随机()*20)+1);
document.getElementById(“rollBox”).submit();
}
聊天

您的留言:

在php上改变这一点

<?php
if(isset($_POST['submit']))//on submit
{
//echo 'here';
    $roll = $_POST['roll'];
    $file = fopen("chat.txt","w");//no mode selected
    fwrite($file,$roll);
    fclose($file); 
    print_r(error_get_last());
}
?>


这可以工作并生成chat.txt

OK,它可以在txt文件中获取号码。但是现在它清除了txt文件中以前的内容。知道如何将其添加到文件中吗?还有一件事(对于新手提出的问题,我很抱歉)但是,当我提交带有文件内容的表单时,它会进入页面roll.php。有没有办法让它保持在同一页面上而不刷新?好吧,我发现文件内容将添加内容,而不是替换现有内容。我现在的问题只是将其保持在同一页面上,而不是表单重新定向到roll.phpyah,为什么我犯了什么错误(表单中的一个表单是无效的html。那个html是他写的,我知道,但我认为如果他不关闭第一个表单,第二个表单就不起作用了。是的,编辑了它。虽然在第一个地方没有看到它,但它工作得很好。所以这起作用了。我对scrblnrd3的回答也有一些问题。首先,它应该附加文件(对不起,我之前应该提到),而不是清除文件。不确定如何使代码附加。另一个问题是,我需要它保持在同一页上而不刷新,这仍然可行吗?