我有一个用HTML和PHP文件编写的表单,它应该能够在同一目录中生成文本文件的输入。我之前用一个不同的简单HTML文件测试了它并且它工作了,现在我正在尝试将它应用于更大的HTML文件,并且不知何故它不会工作,我无法找到它的错误。
feedback.html:
<html>
<head>
<script>
function myFunction()
{
alert("Your feedback has been sent! Thank you");
}
</script>
</head>
<body>
<div class="Linksediv">
<h3>Feedback</h3>
<p>Please enter your name and give us some feedback</p>
<form action="form1.php" method="post">
Name<input id="Email" size="30" type="text" name="field1"/><br/>
<textarea id="pass" type="text" name="field2" rows="4" cols="24">Please give us some feedback
</textarea>
<br/>
<input type="button" name="submit" value="submit" id="buttonOk" onclick="myFunction()" value="Show alert box" />
</form>
</div>
</body>
</html>
Form1.php
<?php
if(isset($_POST['field1']) && isset($_POST['field2'])) { //Check if fields are there in HTML file
$data = $_POST['field1'] . ' - ' . $_POST['field2'] . "\n"; //output
$ret = file_put_contents('data1.txt', $data, FILE_APPEND | LOCK_EX); //file dir for data1.txt
if($ret === false) { //check if anything was written down
die('There was an error writing this file');
}
else {
echo "$ret bytes written to file"."\n";
}
}
?>
如果我按下表单上的提交,那么我只会弹出一个带警报的弹出窗口,并且文本文件不会被写入
答案 0 :(得分:3)
以下一行
<input type="button" name="submit" value="submit" id="buttonOk" onclick="myFunction()" value="Show alert box" />
创建一个输入类型=“按钮”,而不是type =“submit”,因此表单实际上并未提交。
另外,考虑在帖子之后显示成功消息而不是单击,只需在文件写入成功后在form1.php脚本上回显
答案 1 :(得分:1)
从按钮更改输入类型后,您可能还需要向onclick处理程序添加“return true”语句。返回false会阻止提交按钮执行其默认操作,即提交表单。如果您没有返回值,则行为可能相同。
function myFunction()
{
alert("Your feedback has been sent! Thank you");
return true;
}