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

时间:2013-12-30 22:21:32

标签: javascript php html html5

我有一个带有按钮的文本输入字段,该按钮可生成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>

roll.php:

<?php

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

4 个答案:

答案 0 :(得分:1)

随机数仅在客户端生成:您尚未将其发送到服务器。您正在创建一个表单(name=rollbox),您不会将其发送回服务器(您似乎也错过了</form>。要么提交表单,要么使用AJAX将信息发送到后端。

答案 1 :(得分:1)

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

on 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>
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

答案 2 :(得分:0)

为什么不在PHP中生成随机数,然后将其放在file_put_contents()这样的文件中?

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


?>

答案 3 :(得分:0)

您的顶级FORM的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>