обработка значений флажков в форме электронной почты с php - PullRequest
0 голосов
/ 02 сентября 2011

Я просмотрел несколько постов с вопросами и нашел одного человека с той же проблемой, что и я, но ответ, который он получил, я не нашел, чтобы помочь вообще.

Я создал форму, которая использует флажки. После отправки вся моя форма прекрасно обрабатывается, и я получаю письмо, но когда дело доходит до флажков, в письме отображается только «Массив» вместо отмеченных значений флажков ....

Что я делаю не так?

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 голосов
/ 02 сентября 2011

Вы можете использовать foreach следующим образом:

$serviceTypes = "";

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

Это возможно.

0 голосов
/ 02 сентября 2011

Обновление

Я только что попробовал ваш код, и он отлично работает, и результаты, что вы хотите.Так что вы можете показать ваш <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>
0 голосов
/ 02 сентября 2011

Хм, это странно .. Он должен показывать все значения serviceType, разделенные \n, из-за этой строки:

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

Что если вы измените $_REQUEST на $_POST?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...