【问题标题】:Multiple checkbox options on a PHP formPHP 表单上的多个复选框选项
【发布时间】:2012-10-06 02:45:51
【问题描述】:

已经用 PHP 构建了一个功能表单,但是我有一个带有 5 个选项的复选框(可以选择超过 1 个),但是电子邮件中只显示了一个选项。

HTML:

<label class="radio"><input type="checkbox" name="service" value="Web Design" />Web Design</label>
<label class="radio"><input type="checkbox" name="service" value="Graphic Design" />Graphic Design</label>
<label class="radio"><input type="checkbox" name="service" value="Brand Identity" />Brand Identity</label>
<label class="radio"><input type="checkbox" name="service" value="Online Marketing" />Online Marketing</label>
<label class="radio"><input type="checkbox" name="service" value="Other" />Other</label>

PHP: ($service)

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$website = $_POST['website'];
$service = $_POST['service'];
$description = $_POST['description'];
$inspiration = $_POST['inspiration'];
$budget = $_POST['budget'];
$deadline = $_POST['deadline'];
$formcontent=" From: $name \n Email: $email \n Phone: $phone \n Website: $website \n\n service: $service \n budget: $budget \n deadline: $deadline \n\n description: $description \n\n inspiration: $inspiration ";
$recipient = "myemail@gmail.com";
$subject = "Contact form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You, your information has been received.";
?>

【问题讨论】:

    标签: php html css forms


    【解决方案1】:

    如果您有多个具有相同名称的元素,那么您将只能读取其中一个,除非您使用数组语法[],例如name=service[] 然后您将收到 $_POST['service'] 作为包含所有服务的数组。您可以使用implode 将其转换为字符串。

    $service = implode(' ', $_POST['service']);
    

    【讨论】:

      【解决方案2】:

      在名称中使用数组,您将其命名为 service 写在那里,service[]。 然后使用 multiple="multiple" tag.and 在 php 部分使用这个:

      <?php
      $services=implode(',',mysql_real_escape_string($_post['service']));
      print_r($services);
      ?>
      

      编码愉快!

      【讨论】:

        【解决方案3】:

        用户数组名称而不是复选框中的简单名称,如下所示:

        <label class="radio"><input type="checkbox" name="service[]" value="Web Design" />Web Design</label>
        <label class="radio"><input type="checkbox" name="service[]" value="Graphic Design" />Graphic Design</label>
        <label class="radio"><input type="checkbox" name="service[]" value="Brand Identity" />Brand Identity</label>
        <label class="radio"><input type="checkbox" name="service[]" value="Online Marketing" />Online Marketing</label>
        <label class="radio"><input type="checkbox" name="service[]" value="Other" />Other</label>
        
        print_r($_POST['service']);
        // output
        Array
        (
            [0] => Web Design
            [1] => Graphic Design
            [2] => Brand Identity
            [3] => Online Marketing
            [4] => Other
        )
        

        【讨论】:

          【解决方案4】:

          name="service[]" (Array) 而不是name="service" 放入您的表单中,以获取多个选定值作为数组。在检索时,您可以使用implode 函数获取值,如下所示

          $services = implode(",", $_POST['service']);
          

          【讨论】:

            猜你喜欢
            • 2020-12-09
            • 1970-01-01
            • 1970-01-01
            • 2019-02-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-01-24
            • 1970-01-01
            相关资源
            最近更新 更多