原始: 我试图使PHP获得输入到文本框中的输入,并将其写入name.txt。我还收到一条错误消息,内容为“预期的标签名称。代替。”在第6行。
<html>
<body>
<p>Enter name here:</p>
<input type="text" id="name"/>
<button onclick="[activate PHP]">Enter</button>
<?php
$fp = fopen('name.txt', 'w');
fwrite($fp, '[name entered]');
fclose($fp);
?>
</body>
</html>
我不熟悉PHP,因此请解释您回答时固定代码的作用。
新功能: 这是@Vlad Gincher制作的。问题是,代码没有创建.txt文件,这使我相信页面加载后PHP就会立即执行。提交表单后,是否可以激活PHP?
<?php
if(isset($_POST["textareaValue"])) {
$fp = fopen('name.txt', 'w');
fwrite($fp, $_POST["textareaValue"]);
fclose($fp);
}
?>
<html>
<body>
<p>Enter name here:</p>
<form method="post">
<input type="text" id="name" name="textareaValue" />
<input type="submit" value="Enter" />
</form>
</body>
</html>
再次,我对PHP缺乏经验,这可能是我的错误。
答案 0 :(得分:1)
PHP在服务器端运行。服务器完成后,它将输出返回给客户端。在这一点上,您不能使用PHP,但是可以强制客户端发送另一个HTTP请求,以便激活PHP。
这里是运行代码,检查客户端是否向服务器发送了信息,如果是,则将信息添加到文件中。如果没有,它什么也不做。
我正在使用HTML的form元素来告诉浏览器使用post
将信息发送回服务器。然后,我可以使用PHP的$_POST
以及我想从(textareaValue
)获取数据的输入名称来获取值
<?php
if(isset($_POST["textareaValue"])) {
$fp = fopen('name.txt', 'w');
fwrite($fp, $_POST["textareaValue"]);
fclose($fp);
}
?>
<html>
<body>
<p>Enter name here:</p>
<form method="post">
<input type="text" id="name" name="textareaValue" />
<input type="submit" value="Enter" />
</form>
</body>
</html>
答案 1 :(得分:0)
呈现网页(显示给用户)后,PHP完成。 PHP无法与用户进行交互-为此,您需要(a)将HTML表单提交到.php
文件(甚至包含该表单的文件),或者-且这种方式流行得多天-使用AJAX的javascript。
这是讨论两者的另一个答案:
How can I make, when clicking a button, send an email with the data included from the form?
HTML表单被“提交”到后端PHP文件,该文件从表单字段接收数据。每个表单字段在HTML标记上都有一个name=
属性-成为变量名称,而HTML元素的内容成为变量的数据。
ajax发生了非常相似的事情,除了它更灵活(HTML表单系统非常严格/静态),而且(最重要的是)网页不需要刷新。