使用html中的表单提交按钮加载php文件
以下代码是HTML和php代码。如果按下提交按钮,我希望执行practice.php文件(maketest.txt文件)。但是如果我按下按钮,php不会生成文件。有人知道这件事吗使用html中的表单提交按钮加载php文件,php,html,Php,Html,以下代码是HTML和php代码。如果按下提交按钮,我希望执行practice.php文件(maketest.txt文件)。但是如果我按下按钮,php不会生成文件。有人知道这件事吗 <HTML> <HEAD> </HEAD> <BODY onLoad="tid=setInterval('refresh()',1000);"> <div id="outputDiv"></div>
<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>
函数刷新()
{
var HTML=“”;
HTML+=“”;
document.getElementById(“outputDiv”).innerHTML=HTML;
}
使用“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>
//如果文件准备好了。
$(文档).ready(函数(){
//如果按钮被点击。
$(“#按钮”)。单击(函数(){
//在“outputdiv”div中加载文件。
$(“#outputDiv”).load(“test.txt”);
//假设您试图在1000毫秒后刷新div,因此:
setInterval(函数(){
$(“#outputDiv”).load(“test.txt”);
},1000);
});
});
必须将提交按钮放在表单元素内。脚本将提交按钮放在表单元素外部的
元素中。按“提交”时,浏览器不知道要提交哪个表单
例如,这将更好地工作:
<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>
函数刷新()
{
var HTML=“”;
HTML+=“”;
document.getElementById(“表单”).innerHTML+=HTML;
}
请不要介意,但为什么在他使用JavaScript时将其放在表单元素中?@Waleed他使用JavaScript插入提交按钮,而不是提交表单。要提交,用户需要按下不在任何表单元素中的按钮。谢谢@snipes83。但是,如果我按下按钮,不是生成文件而是显示下载窗口。所以,若我下载文件并打开它,它就是我的php源代码。我认为它不是执行源代码。你知道吗?@Jimmy这可能是因为你在不支持PHP的服务器上运行网页。您需要将html和PHP文件上载到启用PHP的web服务器。或者让PHP在您自己的机器上运行。@snipes83如果他在不支持PHP的服务器上运行文件,它只会在web浏览器窗口中显示所有PHP代码,而不是显示下载。您知道函数setInterval()
用于每隔一段时间重复进行函数调用。在您的情况下,这意味着提交按钮将永远每秒重新创建一次。使用setTimeout()
进行一次延迟函数调用。“a”标志并不意味着将自动创建文件。这意味着数据将追加到文件末尾,而不是覆盖旧数据。如果文件不存在,“w”标志也将尝试创建该文件。是否确定?阅读以下内容:“w”标志将文件指针放在文件的开头,并将文件截断为零长度,因此将在结尾添加“a”。这正是我在前面的评论中所说的。分别使用“a”和“w”标志将导致调用尝试创建以前不存在的文件。不同之处在于,“a”将导致任何后续写入都将附加到末尾,而不是覆盖以前的数据。追加数据是不相关的,因为OP从未声明他希望这样做;有一个fwrite函数,他正在尝试编写文件。