【问题标题】:Foreach duplicating checkbox inputs formForeach 复制复选框输入表单
【发布时间】:2020-10-13 18:47:28
【问题描述】:

我有 4 个输入(见下文),而不是 2 个全职输入和承包商框打勾。我怎样才能避免重复输入,最终只有两个输入才会勾选全职和承包商的框?

代码如下:

    <?php       
      $jobEmploymentType = "FULL_TIME,CONTRACTOR";
       $jobEmploymentTypeExplode = (explode(",",$jobEmploymentType));   
    //print_r($jobEmploymentTypeExplode);
           foreach ($jobEmploymentTypeExplode as $jobType) : ?>
                
   <span class="asterisk">*</span>  <label for="jobEmploymentType">Employment Type</label><br>
  <input type="checkbox" class="w3-check" id="fullTime" name="fullTime" value="FULL_TIME" <?= ($jobType == "FULL_TIME")? "checked":"";?>>
  <label for="fullTime"> FULL-TIME</label><br> 

  <input type="checkbox" class="w3-check" id="contractor" name="contractor" value="CONTRACTOR" <?= ($jobType == "CONTRACTOR")? "checked":"";?>>
  <label for="contractor"> CONTRACTOR</label><br>
        <?php endforeach; ?> 

预期结果:

【问题讨论】:

  • 您有太多未解决的问题,恕我直言。这是为什么呢?

标签: php html forms checkbox foreach


【解决方案1】:

我找到了一种使用 in_array 的方法:

PHP 代码:

   $jobTypeExplode = (explode(",",$jobEmploymentType)); 
        
        if(in_array('FULL_TIME',$jobTypeExplode)) {$fulltime = 'FULL_TIME';} 
  
     if (in_array('CONTRACTOR',$jobTypeExplode)) {$contractor = 'CONTRACTOR';}

HTML 代码:

  <input type="checkbox" class="w3-check" id="fullTime" name="fullTime" value="FULL_TIME" <?= ($fulltime == "FULL_TIME")? "checked":"";?>>
  <label for="fullTime"> FULL-TIME</label><br> 
  <input type="checkbox" class="w3-check" id="contractor" name="contractor" value="CONTRACTOR" <?= ($contractor == "CONTRACTOR")? "checked":"";?>>
  <label for="contractor"> CONTRACTOR</label><br>

【讨论】:

    【解决方案2】:

    $jobEmploymentType = "FULL_TIME,CONTRACTOR";

    您的问题在上面一行。当您为变量 $jobEmploymentType 提供两个值时,程序将输出该程序两次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多