bootd
@bootd
Гугли и ты откроешь врата знаний!

Как написать условие внутри переменной?

Наверно не обычный вопрос.
У меня есть переменная, которая содержит такой вот код:
$message = '
			<table>
				<tr>
					<td>Имя: '.$_POST["name"].'</td>
				</tr>
				<tr>
					<td>Телефон '.$_POST["tel"].'</td>
				</tr>
				<tr>
					<td>Дата '.$_POST["date"].'</td>
				</tr>
			</table>
		';

Да, это для формы отправки сообщения.

Например, если я не заполню в форме поле с телефоном, то при отправке должны придти на почту только строка с именем и датой. Как можно решать данный вопрос?
  • Вопрос задан
  • 522 просмотра
Решения вопроса 2
YardalGedal
@YardalGedal
yeah boy
FanatPHP
@FanatPHP
Чебуратор тега РНР
Отвечу на вопросы, которые остались без ответа

1. На случай, если никто не умрет, получив сообщение с пустой ячейкой "Телефон", оставляем код как есть.
2. На случай, если умрет и полей будет десяток

$fields = array(
    'name'  => 'Имя',
    'phone' => 'Телефон',
    // ...
); 
$message = '<table>';
foreach ($fields as $key => $title)
{
    if ($value = trim($_POST[$key]))
    {
        $message .= "<tr><td>$title:</td><td>$value</td></tr>";
    }
}
$message .= '</table>';
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@acspro
Правильно будет так думаю:
$message = '
      <table>
        '.(isset($_POST['name'])&&trim($_POST['name'])!=''?'
		<tr>
          <td>Имя: '.$_POST["name"].'</td>
        </tr>
		':'').'
         '.(isset($_POST['tel'])&&trim($_POST['tel'])!=''?'
		<tr>
          <td>Телефон '.$_POST["tel"].'</td>
        </tr>
		':'').'
		 '.(isset($_POST['date'])&&trim($_POST['date'])!=''?'
        <tr>
          <td>Дата '.$_POST["date"].'</td>
        </tr>
		':'').'
      </table>
    ';
Ответ написан
LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии
$message = '//' . 
if () {} 
. '//';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы