首页 > 解决方案 > PHP $_POST 如何获取不在电子邮件中显示的预设 html 字段值

问题描述

我有一个 html 表单,它有一个带有文本“评论(可选)”的文本区域和一个具有预设值“在此处输入名称”的字段,以及一个具有电子邮件模板的 php 表单处理程序。

<form>
<textarea name="comments" cols="30" rows="4">Comments (optional)</textarea>
<input type="text" name="join" value="Enter names here">
</form>

$message = "


Comments: " . $comments . "
Names: " . $person1 . " " . $join . " 

"    

我试图让通过的电子邮件在“评论:”之后不显示任何内容(即它仍然显示“评论(可选)”并在用户留下评论时显示评论。这同样适用于文本字段,如果用户没有输入名称,我希望它不显示任何内容,而不是在用户未提供名称时显示“在此处输入名称”。

我是 php 的初学者,我尝试了以下方法:

$emptyfield = ' ';

if ($comments != 'Comments (optional)') {
  $comments = $_POST["comments"];
} else {
  $comments = $emptyfield;
}


if ($join != 'Enter names here') {
  $join = 'joining with ' . $_POST["join"];
}

但我收到的电子邮件仍然显示

评论:评论(可选)

姓名: ($person1) 加入并在此处输入姓名

如果有人能告诉我我在这里做错了什么,我将不胜感激。谢谢!

标签: php

解决方案


有一个特殊的属性placeholder,您可以在其中提供一些提示。当用户点击<input><textarea>开始输入时,placeholder会消失。因此,将您的标记更改为:

<form>
    <textarea name="comments" cols="30" rows="4" placeholder="Comments (optional)"></textarea>
    <input type="text" name="join" placeholder="Enter names here" value="">
</form>

提交后,如果没有输入,您将获得用户输入的确切内容或空字符串。


推荐阅读