【问题标题】:Sending only populate fields with PHP mail()仅使用 PHP mail() 发送填充字段
【发布时间】:2023-03-17 01:05:01
【问题描述】:

我正在为一位高级餐饮客户完成在线菜单。对于每个项目,用户可以输入所需的数量。

当用户完成选择并提交表单时,我希望将一封确认电子邮件发送给用户和餐厅老板(相同的消息)。

在确认电子邮件中,我只想显示他们已输入数量的项目。例如:

鹅肝酱 1 $9ea
Steak au Poivre 2 $37ea

我知道这可能很简单,但我无法概念化脚本在什么时候检查类似 !="" 的内容。什么的。

这是供您参考的菜单:http://www.greenroomgrille.com/valentines/

非常感谢。

【问题讨论】:

    标签: php email sendmail


    【解决方案1】:

    您可以运行一个 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);
    

    【讨论】:

    • 该死的桑普森这么快! +1
    • 我有一种预感,我需要遍历这些值。感谢您清理它。
    【解决方案2】:

    这很简单,只需在将变量添加到正文之前检查变量是否为空:

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

    【讨论】:

    • 您正在使用 MySQL 比较,您需要 != 而不是 。
    • 并且变量将在 $_POST 而不是 $POST 中。
    【解决方案3】:

    解决此问题的最直接方法是遍历所有菜单项数量值,并将它们添加到电子邮件正文中,如下所示:

    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...
    

    【讨论】:

    • 太棒了。感谢您的具体说明。
    猜你喜欢
    • 2017-08-08
    • 2013-04-13
    • 2012-08-20
    相关资源
    最近更新 更多