如果在PHP邮件中选中,只显示下拉菜单内容
我创建了一个通过PHP邮件发送的HTML表单。一切都很好,但我想简化它,以便在发送的电子邮件中只显示实际选择的下拉菜单。现在,它的设置使得每个下拉菜单都显示在电子邮件中,即使用户选择了0。我已经有很多下拉菜单了,还有一些需要添加的内容,这样电子邮件会很快变得杂乱无章。如果在PHP邮件中选中,只显示下拉菜单内容
从逻辑上讲,一个简单的if语句应该可以完成这项工作,但我不确定该怎么做,因为我只有一行$email_body=""
向电子邮件发送内容,并且我不能在if/else语句中插入if那里。我研究了三元运算符,但我的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 = "[email protected]";
$headers = "From: $email";
mail($to, $email_subject, $email_body, $headers);
header("Location: http://example.com");
?>
因此简化,如果用户在下拉菜单中选择0,我不希望它显示在正在发送的电子邮件中。不能用只有一个不允许if/else语句的字符串来解决这个问题。
你可以用,如果再建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 = "[email protected]";
$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';
}
?>
好的,这是我所寻找的更多。所以每个服务都会被声明并放入一个数组中,如果它不是空的,那是对的吗?然后你只需要显示'$ services'的数组? – Coltvant
是的。零是空的。除非声明一个变量是错误的。数组只保存可显示的信息。 –
旁注比较:从技术上讲,你的POST数组将失败。 –
你能详细说一下吗?它现在正在工作,但我想知道你的意思。我对PHP很新,所以解释会很有帮助。 – Coltvant
没关系,没关系。你的*“(简单来得到一个想法)”*似乎意味着该方法被遗漏了。 –