PHP提交表格到电子邮箱复选框

时间:2011-04-08 11:19:45

标签: php mysql email forms

嗨,大家好我刚接触php,我正在制作一个人们在线预订的提交表格。

我的表单工作正常,但我想添加额外的复选框,然后在发送给用户和我自己的确认电子邮件中注明这些额外内容。

<tr>
    <td height="10" align="right" class="align_right">Deodoriser:&nbsp;</td>
    <td>
        <input type="text" name="deodoriser" id="deodoriser" value="<?php echo $deodoriser?>"  onchange="checkFieldBack(this)"/>
    </td>
</tr>

<tr>
    <td height="30" align="right" class="align_right">Carpet Protector (5 litre):&nbsp;</td>
    <td>
        <input type="text" name="carpet" id="carpet" value="<?php echo $carpet?>"  onchange="checkFieldBack(this)"/>
    </td>
</tr>
<tr>
    <td height="30" align="right" class="align_right">Carpet Repair Tools:&nbsp;</td>
    <td>
        <input type="text" name="carpetrepair" id="carpetrepair" value="<?php echo $carpetrepair?>"  onchange="checkFieldBack(this)"/>
    </td>
</tr>
<tr>
    <td height="30" align="right" class="align_right">Furniture Moving Equipment:&nbsp;</td>
    <td>
        <input type="text" name="furniture" id="furniture" value="<?php echo $furniture?>"  onchange="checkFieldBack(this)"/>
    </td>
</tr>
<tr>
    <td height="30" align="right" class="align_right">Furniture Tabs:&nbsp;</td>
    <td>
        <input type="text" name="tabs" id="tabs" value="<?php echo $tabs?>"  onchange="checkFieldBack(this)"/>
    </td>
</tr>
<tr>
    <td height="30" align="right" class="align_right">Urine Decontamination Treatment:&nbsp;</td>
    <td>
        <input type="text" name="urine" id="urine" value="<?php echo $urine?>"  onchange="checkFieldBack(this)"/>
    </td>
</tr>

我想制作这些复选框而不是文本。 这些是变量

$deodoriser = (!empty($_REQUEST["deodoriser"]))?strip_tags(str_replace("'","`",$_REQUEST["deodoriser"])):'';
    $carpet = (!empty($_REQUEST["carpet"]))?strip_tags(str_replace("'","`",$_REQUEST["carpet"])):'';
    $carpetrepair = (!empty($_REQUEST["carpetrepair"]))?strip_tags(str_replace("'","`",$_REQUEST["carpetrepair"])):'';
    $furniture = (!empty($_REQUEST["furniture"]))?strip_tags(str_replace("'","`",$_REQUEST["furniture"])):'';
    $tabs = (!empty($_REQUEST["tabs"]))?strip_tags(str_replace("'","`",$_REQUEST["tabs"])):'';
    $urine = (!empty($_REQUEST["urine"]))?strip_tags(str_replace("'","`",$_REQUEST["urine"])):'';

这是确认电子邮件

$message .="Name: ".$name;
$message .="<br />Email: ".$email;
$message .="<br />Phone: ".$phone;
$message .="<br />Quantity: ".$qty;
$message .="<br />Address: ".$comments;
$message .="<br />Drop off Time: ".$dropoff;
$message .="<br />Machine: ".$eventInf[0].;
$message .="<br />Deodoriser: ".$deodoriser;
$message .="<br />Carpet Protector: ".$carpet;
$message .="<br />Carpet Repair Tools: ".$carpetrepair;
$message .="<br />Furniture Moving Equipment: ".$furniture;
$message .="<br />Furniture Tabs: ".$tabs;
$message .="<br />Urine Decontamination Treatment: ".$urine;            
$message .="<br />Booking date: ".$eventInf[2]."<br />";
$message .="<br />Reservation Status: Not Confirmed<br />";
$message .="<br /><br />Kind Regards, <br /> ".$_SERVER['HTTP_HOST']." Website";    

感谢您提供的任何帮助/建议,我已经在这里查看了所有类似的问题,并尝试了几天才能让它正常运行而且无法做到。

4 个答案:

答案 0 :(得分:1)

您可以在HTML表单中创建它们作为输入类型复选框。所有复选框都应该具有相同的名称,末尾用方括号表示PHP数组:

<input type="checkbox" name="options[]" value="value"/>

当您提交表单时,所有选中复选框的值将以您提供的名称在GET或POST超全局数组中作为数组提供,因此您可以像这样循环:

$options = $_GET['options'];
foreach ($options as $option) {
  // $option will now hold the "value" of the checkbox being processed
}

答案 1 :(得分:1)

您可以使用复选框并将值存储在数组中:

<input type="checkbox" name="extras[]" value="Deodoriser" />
<input type="checkbox" name="extras[]" value="Carpet" />
<input type="checkbox" name="extras[]" value="Furniture" />

然后遍历$ _POST ['extras']数组以输出值

foreach($_POST['extras'] as $extra)
{
    $message .="<br />Extra: ".$extra;
}

答案 2 :(得分:0)

将输入类型设置为“复选框”。

答案 3 :(得分:0)

而不是你的strip_tags(str_replace())只需输入字符串即可。 e.g

$deodoriser = !empty($_REQUEST["deodoriser"]) ? 'Deodoriser' : '';

在html中设置type="checkbox"

而不是value=,如果您需要预先检查,则需要在HTML中为每个人设置checked="checked"