Отправка только заполненных полей с помощью PHP mail () - PullRequest
1 голос
/ 22 января 2010

Я заканчиваю онлайн меню для клиента изысканной кухни. Для каждого товара пользователь может ввести желаемое количество.

Когда пользователь заканчивает выбор и отправляет форму, я хочу, чтобы электронное письмо с подтверждением было отправлено пользователю и владельцу ресторана (то же сообщение).

В электронном письме с подтверждением я хочу отображать только те товары, для которых введено количество. E.g.:

Фуа-гра 1 $ 9ea
Steak au Poivre 2 $ 37ea

Я знаю, что это, вероятно, просто, но я не могу понять, в какой момент сценарий проверяет что-то вроде! = "". Или что-то.

Вот меню для справки: http://www.greenroomgrille.com/valentines/

Заранее большое спасибо.

Ответы [ 3 ]

1 голос
/ 22 января 2010

Вы можете пройти через foreach и объединить значения, у которых есть количества:

$order = "";
foreach ($items as $item => $quantity) {
  if ($quantity > 0)
    $order .= "{$item} {$quantity}\n";
}
print $order;

Предполагается, что массив выглядит так:

$items = array("Pudding" => 3, "Yogurt" => 12, "Soup" => 0, "Apples" => 0);
0 голосов
/ 22 января 2010

Самый простой способ сделать это - перебрать все значения количества пунктов вашего меню и обусловить их добавление в тело письма следующим образом:

if(intval($_REQUEST['CourseOne-App1']) > 0)
  $email_body .= intval($_REQUEST['CourseOne-App1']) . 'x Torchon of Foie Gras' . "\n";

if(intval($_REQUEST['CourseOne-App2']) > 0)
  $email_body .= intval($_REQUEST['CourseOne-App2']) . 'x Carpaccio' . "\n";

// etc...
0 голосов
/ 22 января 2010

Это было бы довольно просто, просто проверьте переменную пустую перед добавлением ее в основной текст:

if ($POST["Pudding"] <> "") { $bodyText .= "Pudding: " . $POST["Pudding"]; }

...