PHP $ _POST Как получить предустановленное значение поля html, которое не будет отображаться в сообщении электронной почты - PullRequest
0 голосов
/ 08 июля 2020

У меня есть форма 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 . " 

"    

Я пытаюсь получить письмо, которое приходит, чтобы ничего не отображать после «Комментарии:», если ничего не было введено в поле (ie. все равно отображается «Комментарии (необязательно) "и чтобы показать комментарий, если пользователь оставил комментарий. То же самое относится и к текстовому полю, я хочу, чтобы оно ничего не показывало, если пользователь не ввел имя, вместо отображения" Введите имена здесь ", если имя не было указано пользователем.

Я новичок с php, и я пробовал следующее:

$emptyfield = ' ';

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


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

, но в полученном мной электронном письме все еще отображается

Комментарии: Комментарии (необязательно)

Имена: ($ person1) присоединение к Введите имена здесь

Буду признателен, если кто-нибудь скажет мне, что я здесь делаю не так. Спасибо!

Ответы [ 3 ]

2 голосов
/ 08 июля 2020

В вашем содержимом HTML используйте заполнитель, чтобы показать заданное значение. Это хороший способ.

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

И в вашем фрагменте кода php попробуйте использовать проверки с помощью isset (),! Empty () или! = Null. здесь! isset () проверит, содержит ли переменная какое-либо значение или нет.

<?php
if (isset($_POST["join"])) {
  $join = 'joining with ' . $_POST["join"];
}
?>
1 голос
/ 08 июля 2020

Есть специальный атрибут под названием 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>

После отправки вы получите именно тот ввод, который пользователь ввел, или пустую строку, если ничего не было введено.

0 голосов
/ 08 июля 2020

Вы можете поместить здесь «Комментарии (необязательно)» и «Введите имена» в качестве заполнителей в textarea / input следующим образом:

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

Затем в вашем php коде вы можете сделать что-то вроде этого:

$comments = isset($_POST["comments"]) ? $_POST["comments"] : ''; // check if the param is set
$join = isset($_POST["join"]) ? $_POST["join"] : ''; // check if the param is set

$message = ''
if (strlen($comments)) {
  $message .= 'Comments: ' . $comments;
}

if (strlen($join)) {
  $message .= 'joining with ' . $join;
}

// Do something with the message here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...