使用php处理电子邮件表单中的复选框值

时间:2011-09-02 11:32:44

标签: php html forms checkbox

我已经阅读了一堆问题帖子,发现一个人和我有同样的问题,但他/她收到的答案我根本找不到帮助。

我创建了一个使用复选框的表单。一旦提交,我的整个表格处理得很漂亮,我确实收到了邮件,但是当它出现在复选框中时,它只显示电子邮件中的“数组”,而不是选中的复选框值....

我做错了什么?

HTML表单代码:根据要求提供完整表单

                                        <form name="busquoteform" method="post" action="FormToEmail.php">
            <fieldset>
                <legend>Contact Information</legend>
                    <table width="100%">
                        <tr>
                            <td width="40%">
                                <label><strong>Name *:</strong></label><br/>
                                <input name="name" type="text" id="name" value=""  />
                            </td>
                            <td width="10%">&nbsp;</td>
                            <td width="40%">
                                <label><strong>Lastname *:</strong></label><br />
                                <input name="lname" type="text" id="lname" value=""  />
                            </td>
                        </tr>
                     </table>
                     <table width="100%">
                        <tr>
                            <td width="25%">
                                <label><strong>Contact Number:</strong></label><br/>
                                <input name="contactno" type="text" id="contactno" value=""  />
                            </td>
                            <td width="25%">
                                <label><strong>Mobile Number * </strong></label><br/>
                                <input name="mobno" type="text" id="mobno" value=""  />
                            </td>
                            <td width="40%">
                                <label><strong>Email *:</strong></label><br/>
                                <input name="email" type="text" id="email" value=""  />
                            </td>
                        </tr>
                    </table>
                </fieldset>
                    <br/>
                <fieldset>
                <legend>Company Information</legend>
                    <table width="100%">
                        <tr>
                            <td width="40%">
                                <label><strong>Company Name *:</strong></label><br/>
                                <input name="compname" type="text" id="compname" value=""  />
                            </td>
                            <td width="10%">
                                <label><strong>Position Held *:</strong></label><br />
                                <input name="position" type="text" id="position" value=""  />
                            </td>
                            <td width="40%">
                            </td>
                        </tr>
                     </table>
                     <table width="100%">
                        <tr>
                            <td width="16%">
                                <label><strong>Company Address*:</strong></label><br/><br/><br/><br/>
                            </td>
                            <td width="2%">
                            </td>
                            <td>
                                <input name="street" type="text" id="street" value="Street" size="30"  /><br/>
                                <input name="suburb" type="text" id="suburb" value="Suburb" size="30" /><br/>
                                <input name="city" type="text" id="city" value="City" size="30" /><br/>
                                <input name="code" type="text" id="code" value="Postal Code" size="10"  /><br/>
                            </td>
                        </tr>
                      </table>
            </fieldset>
                <br/>
            <fieldset>
                <legend>Project Information</legend>
                    <table>
                        <tr>
                            <td>
                                <label><strong>Service Type/s*:</strong></label><br/>
                                Please select all applicable types.
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Graphic Design&nbsp;<input name="serviceType[]" id="design" type="checkbox" value="Graphic Design" />&nbsp;&nbsp;&nbsp;&nbsp;
                                Web Development&nbsp;<input name="serviceType[]" id="webdev" type="checkbox" value="Web Development" />&nbsp;&nbsp;&nbsp;&nbsp;
                                Application Development&nbsp;<input name="serviceType[]" id="appdev" type="checkbox" value="App Development" />&nbsp;&nbsp;&nbsp;&nbsp;
                                Embroidery&nbsp;<input name="serviceType[]" id="embroidery" type="checkbox" value="Embroidery" />&nbsp;&nbsp;&nbsp;&nbsp;
                                Engraving&nbsp;<input name="serviceType[]" id="engrave" type="checkbox" value="Engraving" /><br/><br/>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <label><strong>Please supply a detailed description of your requirements*:</strong></label><br/>
                                <textarea name="projectDes" cols="60" rows="10" id="projectDes"></textarea>
                                <br/><br/>
                              <input name="quoteBus" type="submit" class="ZD-button" value="Send Request"/>
                            </td>
                        </tr>
                    </table>
            </fieldset>
         </form>

和php处理代码:

                    $mailBody = "Name : ".$_REQUEST['name']. "&nbsp; ".$_REQUEST['lname'].
                                " <br/>Email : ".$_REQUEST['email'].
                                " <br/>Contact No : ".$_REQUEST['contactno']. "&nbsp;&nbsp;Mobile No: ".$_REQUEST['mobno']. 
                                "<br/><br/>Company Name : ".$_REQUEST['compname']. 
                                " <br/>Postion Held : ".$_REQUEST['position']. 
                                "<br/><br/>Company Address : <br/>".$_REQUEST['street']."<br/>".$_REQUEST['suburb']."<br/>".$_REQUEST['city']."<br/>".$_REQUEST['code'].
                                "<br/><br/> Service Type/s :" .(is_array($_REQUEST['serviceType'])?implode("\n", $_REQUEST['serviceType']):$_REQUEST['serviceType'])."<br />".
                                "<br/><br/>Details of Project : ".$_REQUEST['projectDes'];

我也尝试过:                                     “

服务类型/ s:”。$ serviceType = $ _POST [“serviceType”]; $ serviceType = implode(',',$ serviceType);“
”。

并且似乎也不起作用......

我从一个项目获得了这个代码,我的老公做了一段时间 - 但他不是一个php开发人员,他是Java ...

请帮忙吗?

3 个答案:

答案 0 :(得分:0)

嗯,这很奇怪..由于这一行,它应该显示由\n分隔的所有服务类型值:

(is_array($_REQUEST['serviceType'])?implode("\n", $_REQUEST['serviceType']):$_REQUEST['serviceType'])

如果您将$_REQUEST更改为$_POST

,该怎么办?

答案 1 :(得分:0)

您可以这样使用 foreach

$serviceTypes = "";

if (is_array($_REQUEST['serviceType']))
{
    foreach ($_REQUEST['serviceType'] as $serviceType)
    {
        $serviceTypes.= "$serviceType\n";
    }
}

这是一种可能性。

答案 2 :(得分:0)

更新

我刚试过你的代码,它运行正常,并产生你想要的结果。那么请你出示<form>标签。

我测试的代码

<?php

echo (is_array($_REQUEST['serviceType']) ? implode("\n", $_REQUEST['serviceType']) : $_REQUEST['serviceType']);

?>


<form action="" method="post">

    Graphic Design&nbsp;<input name="serviceType[]" id="design" type="checkbox" value="Graphic Design" />&nbsp;&nbsp;&nbsp;&nbsp;
    Web Development&nbsp;<input name="serviceType[]" id="webdev" type="checkbox" value="Web Development" />&nbsp;&nbsp;&nbsp;&nbsp;
    Application Development&nbsp;<input name="serviceType[]" id="appdev" type="checkbox" value="App Development" />&nbsp;&nbsp;&nbsp;&nbsp;
    Embroidery&nbsp;<input name="serviceType[]" id="embroidery" type="checkbox" value="Embroidery" />&nbsp;&nbsp;&nbsp;&nbsp;
    Engraving&nbsp;<input name="serviceType[]" id="engrave" type="checkbox" value="Engraving" /><br/><br/>

    <input type="submit" />
</form>
相关问题