2011-04-08 97 views
0

嗨,大家好我是新来的PHP和即时通讯作出提交表格,人们在线预订。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";  

感谢所有帮助/意见,我已经完成了所有类似的问题在这里看了一下,尝试了几天才能得到它的工作,只是不能做它。

回答

1

您可以使用复选框和值存储在一个数组:

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

然后循环通过$ _ POST [“附加”]数组输出值

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

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

0

而不是你的strip_tags(str_replace())只要放在字符串中。例如

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

随着设置type="checkbox"在您的HTML。

而不是value=如果你想预先检查,你需要在你的HTML中设置checked="checked"

+0

对不起,我贴错了,我已经改变了所有复选框已键入复选框。这封电子邮件是否会显示复选框的结果? – Simon 2011-04-08 11:30:25

+0

如果复选框被选中,则它将位于$ _REQUEST数组中,然后可以将其添加到电子邮件中。它看起来并不像您在电子邮件中包含任何复选框。 – 2011-04-08 11:32:42

+0

我的错误,我添加了正确的电子邮件,因为我粘贴了错误的电子邮件。 – Simon 2011-04-08 11:37:41

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 
}