php邮件表单多个复选框项目

我有一个包含多个复选框的联系表单。我已将 [] 添加到名称中,但不确定在 PHP 中要做什么。如果没有 [],我只能在发送的电子邮件中显示第一个复选框项目。添加[]后,我什么也没得到。


(注:我曾尝试在 StackOverflow 中使用类似的问题,但它们对我的困境不起作用。)


这是我的代码(我已截断 HTML 以仅显示复选框区域):


<div class="form-check">

  <input type="checkbox" class="form-check-input" name="findout[]" id="checkbox5" value="Advertisement">

  <label for="findout[]" class="form-check-label">Advertisement</label>

</div>


<div class="form-check">

  <input type="checkbox" class="form-check-input" name="findout[]" id="checkbox6" value="Yard Sign">

  <label for="findout[]" class="form-check-label">Yard Sign</label>

</div>


<div class="form-check">

  <input type="checkbox" class="form-check-input" name="findout[]" id="checkbox7" value="Search Engine">

  <label for="findout[]" class="form-check-label">Search Engine</label>

</div>

<?php

    $name = $_POST['name'];

    $email = $_POST['email'];

    $findout = $_POST['findout'];

    $method = $_POST['method'];

    $message = $_POST['message'];

    $subject = $_POST['subject'];

    header('Content-Type: application/json');

    if ($name === ''){

      print json_encode(array('message' => 'Name cannot be empty', 'code' => 0));

      exit();

    }

    if ($email === ''){

      print json_encode(array('message' => 'Email cannot be empty', 'code' => 0));

      exit();

    } else {

      if (!filter_var($email, FILTER_VALIDATE_EMAIL)){

      print json_encode(array('message' => 'Email format invalid.', 'code' => 0));

      exit();

      }

    }

    if ($subject === ''){

      print json_encode(array('message' => 'Subject cannot be empty', 'code' => 0));

      exit();

    }

    if ($message === ''){

      print json_encode(array('message' => 'Message cannot be empty', 'code' => 0));

      exit();

    }


一只名叫tom的猫
浏览 74回答 2
2回答

扬帆大鱼

那么人们可以选择多个复选框,而您想正确阅读它们吗?您可以使用下面的代码<?php&nbsp; if(isset($_POST['findout'])){ // Check if findout had been posted&nbsp; &nbsp; &nbsp; foreach($_POST['findout'] as $checked){ // loop trough selected checkboxes&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $checked."</br>"; // Display selected checkboxes&nbsp; &nbsp; &nbsp; }&nbsp; }?>

守候你守候我

将括号添加到字段名称使其成为数组,因此您应该像数组一样访问它$findout&nbsp;=&nbsp;implode(",&nbsp;",$_POST['findout']); echo&nbsp;$findout;&nbsp;//&nbsp;should&nbsp;output:&nbsp;Advertisement,&nbsp;Yard&nbsp;Sign,&nbsp;or&nbsp;whatever&nbsp;they&nbsp;select另外,标签的for属性应该指向字段的 id,而不是字段的名称<label&nbsp;for="checkbox7"&nbsp;class="form-check-label">Search&nbsp;Engine</label>
打开App,查看更多内容
随时随地看视频慕课网APP