首页 > 解决方案 > Foreach 复制复选框输入表单

问题描述

我没有在全职和承包商框中打勾的 2 个输入,而是有 4 个输入,如下所示。我怎样才能避免输入的重复,并且最终只有两个输入才会勾选全职和承包商的框?

这是代码:

    <?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; ?> 

在此处输入图像描述

预期结果:

在此处输入图像描述

标签: phphtmlformscheckboxforeach

解决方案


我找到了一种使用 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>

推荐阅读