0

以下代码是 HTML 和 php 代码。我想要如果按下提交按钮而不是执行 practice.php 文件(制作 test.txt 文件)。但是如果我按下按钮 php 不会生成文件。有谁知道这个??

<HTML>
    <HEAD>
    </HEAD>
    <BODY onLoad="tid=setInterval('refresh()',1000);">
        <div id="outputDiv"></div>
        <form method=post action="practice.php">
            <script language="JavaScript">
            function refresh()
            {           
                var HTML = "";
                HTML += "<input type=submit value=makefile>";
                document.getElementById("outputDiv").innerHTML = HTML;
            }
            </script>
        </form>
    </BODY>
</HTML> 


<html>
    <head><meta http-equiv="Content-Type" content="text/html" charset="utf-8">
    </head>

    <body>
                <?
                    $fp = fopen("test.txt", "w") or die("cannot open file");
                    $data = "!!!!!!!!!!!!!!!!!!!";
                    fwrite($fp, $data);
                    fclose($fp);
                    echo "!!!!!!!!!!!!!!!";
                ?>
    </body>
</html>
4

2 回答 2

-1

使用“a”标志,如果文件不存在,它将自动创建。

$fp = fopen("test.txt", "a")

使用 JQuery,它会很简单。

<input type="submit" value="Load file" id="button"/>
<script>
//If document is ready.
$(document).ready(function(){

  //If button is clicked.
  $("#button").click(function(){

   //Load a file in "outputdiv" div.
   $("#outputDiv").load("test.txt");

   //Assuming you are trying to refresh div after 1000 ms sec, Therefor:
   setInterval(function(){

    $("#outputDiv").load("test.txt");

     },1000);
   });
  });
</script>
于 2012-12-09T12:21:30.977 回答
-1

您必须将提交按钮放在表单元素内。该脚本将提交按钮放在<div id="outputDiv"></div>表单元素之外的元素内。当您按下提交时,浏览器不知道要提交哪个表单。

例如,这会更好:

<HTML>
    <HEAD>
    </HEAD>
    <BODY onLoad="tid=setInterval('refresh()',1000);">
        <form method=post action="practice.php" id="form">
            <script language="JavaScript">
            function refresh()
            {           
                var HTML = "";
                HTML += "<input type=submit value=makefile>";
                document.getElementById("form").innerHTML += HTML;
            }
            </script>
        </form>
    </BODY>
</HTML>
于 2012-12-09T12:24:06.513 回答