【问题标题】:How to get all selected values from multiple select option?如何从多个选择选项中获取所有选定的值?
【发布时间】:2015-02-19 04:52:26
【问题描述】:

我有一个带有多选选项的联系表。但是在提交联系表格后,电子邮件中只出现了 1 个值。想寻找解决方案来完成这项工作。

/* 我的代码开始 */

$title = $_POST['title'];
$contactperson = $_POST['contactperson'];
$phonenumber = $_POST['phonenumber'];
$emailaddress = $_POST['emailaddress'];
$companyname = $_POST['companyname'];
$brand = $_POST['brand'];
$machinemodel = $_POST['machinemodel'];
$serialnumber = $_POST['serialnumber'];
$problems = $_POST['problems']; <--- this is multiple selection values
$inquiry = $_POST['inquiry'];
$security = $_POST['security'];
$from = "YT Copier";
$to = "mail@jornes.com";
$subject = "Admin, someone submitted service request form.";
$message = "Admin, someone has submitted service request form. Details are as follow: \n\nName: $title $contactperson\n\nPhone Number: $phonenumber\n\nEmail Address: $emailaddress\n\nCompany Name: $companyname\n\nMachine Brand:\n$brand\n\nMachine Model: $machinemodel\n\nSerial Number: $serialnumber\n\nProblem Facing: $problems\n\nMessage: $inquiry";

if ($security=="13") {
   mail($to, $subject, $message, $from);
   header("Location:/supports/submit-service-request/?s=s");
}

else {
   header("Location:/supports/submit-service-request/?s=e");
}

<select multiple="multiple" name='problems' id='problems' class="inpBox multiple" size='8' >
        <option value="Cannot Copy">Cannot Copy</option>
        <option value="Cannot Print">Cannot Print</option>
        <option value="Cannot Print">Cannot Scan</option>
        <option value="Cannot Fax">Cannot Fax</option>
        <option value="Lines Appear When Printing/Copying">Lines Appear When Printing/Copying</option>
        <option value="Scan to Email Failed">Scan to Email Failed</option>
        <option value="Toner Low/Empty">Toner Low/Empty</option>
        <option value="Others">Others</option>
</select>

/* 代码结束 */

这是文件名“process.php”中用于处理表单的php代码。 "$problems" 的值是一个多选选项。我在填写表格时尝试选择了几个选项,但最后,电子邮件中只显示了 1 个单个值。有人可以帮忙吗?我应该添加什么代码才能使其工作?如果有人可以提供帮助,我将不胜感激。谢谢!

【问题讨论】:

    标签: php contact-form


    【解决方案1】:

    使用类似problems[] 的名称而不是problems

    //Simple Form and getting the values
    
    <form name="s" method="post" action="" >
     <select multiple="multiple" name='problems[]' id='problems' class="inpBox multiple" size='50' style="height:150px;" >
            <option value="Cannot Copy">Cannot Copy</option>
            <option value="Cannot Print">Cannot Print</option>
            <option value="Cannot Print">Cannot Scan</option>
            <option value="Cannot Fax">Cannot Fax</option>
            <option value="Lines Appear When Printing/Copying">Lines Appear When Printing/Copying</option>
            <option value="Scan to Email Failed">Scan to Email Failed</option>
            <option value="Toner Low/Empty">Toner Low/Empty</option>
            <option value="Others">Others</option>
    </select>
    <input type="submit" name="submit" value="submit" />
    </form>
    
    
    <?php 
    if (isset($_POST['submit'])) {
        $problems =  implode(',', $_POST['problems']);
        echo $problems;
    }
    ?>
    

    【讨论】:

    • 嗨!感谢您的快速响应!我试过了。它行不通。该值返回没有值,并且仅在我将名称用作“问题[]”之后才出现“数组”。再次感谢!
    • 您好 Faizphp,感谢您更新代码。但这仍然行不通。你能告诉我如何将 php 代码放在我的 php 文件中吗?我试过了,但是当我提交表单时它说错误。消息是警告:第 12 行 /home/ytcopier/public_html/process_service_request.php 中的 foreach() 提供的参数无效警告:无法修改标头信息 - 标头已由(输出开始于 /home/ytcopier/public_html/process_service_request。 php:12) 在第 24 行的 /home/ytcopier/public_html/process_service_request.php 中。请指教!谢谢!
    • 您好 Faizphp,我特此在我的流程表单文件中附上 php 代码的快照。看看我是否错误地放置了您的代码,因为它仍然不起作用。仅带有单个值。我在名为“problems”的 id 后面加上“[]”,最终在提交表单后在电子邮件中返回“Array”一词。 ytcopier.com.my/img/process-form-php-file.jpg
    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 2019-10-15
    • 2015-05-09
    相关资源
    最近更新 更多