如果在 A PHP 邮件中选择,则仅显示下拉菜单内容

Only display dropdown menu contents if selected In A PHP Mail

我创建了一个 HTML 表单,通过 PHP 邮件发送。一切都很好,但我想简化它,以便在发送的电子邮件中,只显示具有实际选择的下拉菜单。现在它已经设置好,所以每个下拉菜单都会显示在电子邮件中,即使用户选择了 0。我已经有很多下拉菜单,还有很多要添加,所以电子邮件很快就会变得非常混乱。

从逻辑上讲,一个简单的 if 语句就可以完成这项工作,但我不确定该怎么做,因为我只有一行 $email_body="" 可以将内容发送到电子邮件,而且我无法插入if/else 语句在那里。我研究了三元运算符,但我的 PHP 知识有限,无法让它发挥作用。谢谢!

HTML(简化只是为了得到一个想法)

<form>    
  <div class="tab-content clearfix">
        <div class="tab-pane active" id="carpet-cleaning">
            <h3 class="options-text">Carpet Cleaning Options</h3>
                <!--how many bedrooms-->
                <label class="control-label" for="carpet_cleaning">Bedrooms</label><br>
                <select class="form-control-1" id="carpet_cleaning" name ="bedrooms_selection">
                    <option value="0">0</option>
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                </select>
                <!--how many dining rooms-->
                <br><label class="control-label" for="dining_rooms">Dining Rooms</label><br>
                <select class="form-control-1" id="dining_rooms" name="dining_selection">
                    <option value="0">0</option>
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <!--how many family rooms-->
                    <br><label class="control-label" for="family_rooms">Family Rooms</label><br>
                <select class="form-control-1" id="family_rooms" name="family_room_selection">
                    <option value="0">0</option>
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                </select>
  </div>
 </div>
</form>

PHP

<?php
$bedrooms = $_POST['bedrooms_selection'];
$diningRooms = $_POST['dining_selection'];
$familyRooms = $_POST['family_room_selection'];
$email_subject = "Price Quote";
$email_body="Carpet Services Needed: \n Bedrooms: $bedrooms \n Dining Rooms: $diningRooms \n Family Rooms: $familyRooms";
$to = "jon@example.com";
$headers = "From: $email";
mail($to, $email_subject, $email_body, $headers);
header("Location: http://example.com");
?>

所以为了简化,如果用户在下拉菜单中选择 0,我不希望它显示在发送的电子邮件中。无法仅用一个不允许 if/else 语句的字符串来解决这个问题。

您可以与 if 进行比较,然后构建 email_body 字符串

<?php
if(!empty($_POST['bedrooms_selection'])){
$services[]='Bedrooms: '.$_POST['bedrooms_selection'];
}
if(!empty($_POST['dining_selection'])){
$services[]='Dining Rooms: '.$_POST['dining_selection'];
}
if(!empty($_POST['family_room_selection'])){
$services[]='Family Rooms: '.$_POST['family_room_selection'];
}
if($services){
$email_subject = "Price Quote";
$email_body='Carpet Services Needed: \n'.implode("\n",$services);
$to = "jon@example.com";
$headers = "From: $email";
mail($to, $email_subject, $email_body, $headers);
header("Location: http://example.com");
}
else{
echo 'You have to select at least one service';
}
?>