【问题标题】:How to send the multiple options of the checkbox in FormMail PHP?如何在FormMail PHP中发送复选框的多个选项?
【发布时间】:2016-08-15 19:49:11
【问题描述】:

我有这个选项,我为我的 FormMail PHP 选择了所有选项:

<div class="form-checkbox">
    <label for="modulo-1"><input type="checkbox" class="" name="Modulo" id="modulo-1" value="Simples Led" /> Simples Led</label>
</div>
<div class="form-checkbox">
    <label for="modulo-2"><input type="checkbox" class="" name="Modulo" id="modulo-2" value="Simples Solar" /> Simples Solar</label>
</div>
<div class="form-checkbox">
    <label for="modulo-3"><input type="checkbox" class="" name="Modulo" id="modulo-3" value="Simples Eólico" /> Simples Eólico</label>
</div>

但是,我的 PHP 存档并没有发送所有选中的选项。

这是我在 PHP 中的 formMail。它创建一个列表,但我可以在我的表单中发送所有选中的选项。

function parse_form($array) {
   $reserved_keys[] = "MAX_FILE_SIZE";
   $reserved_keys[] = "required";
   $reserved_keys[] = "redirect";
   $reserved_keys[] = "formlimpo";
   $reserved_keys[] = "require";
   $reserved_keys[] = "path_to_file";
   $reserved_keys[] = "recipient";
   $reserved_keys[] = "subject";
   $reserved_keys[] = "bgcolor";
   $reserved_keys[] = "text_color";
   $reserved_keys[] = "link_color";
   $reserved_keys[] = "vlink_color";
   $reserved_keys[] = "alink_color";
   $reserved_keys[] = "title";
   $reserved_keys[] = "missing_fields_redirect";
   $reserved_keys[] = "env_report";      $reserved_keys[] = "acao";

   if (count($array)) {
      while (list($key, $val) = each($array)) {
         $reserved_violation = 0;
         for ($ri=0; $ri<count($reserved_keys); $ri++) {
            if ($key == $reserved_keys[$ri]) {
               $reserved_violation = 1;
            }
         }
         if ($reserved_violation != 1) {
            if (is_array($val)) {
               $contenttemp = "<b>$key:</b><br>";
               for ($z=0;$zcount($val);$z++) {
                  $contenttemp .= "$val[$z]<br>";
               }
               $contenttemp .= "<br>\n";
               $content .= $contenttemp;
            } else {

                  if ($val) {
              $content .= "<span style='font-family: arial; font-size: 14px;'><b>$key</b> $val</span><br><hr style='border-top: 1px solid #ccc;border-bottom: 1px solid #fff;'>\n";
                  }
            }

         }
      }
   }
   return $content;
}

【问题讨论】:

  • 您需要使用name='Modulo[]' 而不是name='Modulo'[ ] 告诉 PHP 你传递的是一个数组而不是单个值。
  • 我试过把 name='Modulo[]'。而且,当我发送。出现这个错误信息:Fatal error: Function name must be a string in ...

标签: php arrays forms


【解决方案1】:

这行有错误

for ($z=0;$zcount($val);$z++) {

我认为错误“函数名称必须是字符串”来自这里, 更好:

$count_val = count($val);
for ($z=0;$z < $count_val ;$z++) {

正确的答案是你需要这样做

name="modulo[]"

或者另一种方式是这样的:

<div class="form-checkbox">
   <label for="modulo-1">
      <input type="checkbox" class="" name="Modulo1" id="modulo-1" value="Simples Led" /> Simples Led
   </label>
</div>
<div class="form-checkbox">
   <label for="modulo-2"> 
      <input type="checkbox" class="" name="Modulo2" id="modulo-2" value="Simples Solar" /> Simples Solar
   </label>
</div>
<div class="form-checkbox">
   <label for="modulo-3">
       <input type="checkbox" class="" name="Modulo3" id="modulo-3" value="Simples Eólico" /> Simples Eólico
   </label>
</div>

【讨论】:

    猜你喜欢
    • 2011-02-09
    • 2022-06-14
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 2012-10-06
    • 1970-01-01
    • 2021-09-22
    相关资源
    最近更新 更多