PHP 数组验证

我有一个在提交时得到验证的表单。我确保某些字段不为空,日期字段具有有效格式等。我有一个复选框块,旁边有一个文本输入。


Option 1

<input type="checkbox" name="jobBonusId[]" value="1"  />

Option 2

<input type="checkbox" name="jobBonusId[]" value="2"  />

Option 3

<input type="checkbox" name="jobBonusId[]" value="3"  />


Amount 1

<input type="number" name="jobBonusAmount[]" step="0.01" value="0.00" />

Amount 2

<input type="number" name="jobBonusAmount[]" step="0.01" value="0.00" />

Amount 3

<input type="number" name="jobBonusAmount[]" step="0.01" value="0.00" />

因此,如果选中任何 jobBonusId[] 复选框,它就会创建一个数组。现在,我想验证 jobBonusAmount[] 是否选中了它的 -parent- 复选框,并确保它不为空或不等于 0.00。


到目前为止,我有以下代码:


// Run the script

if (isset($_POST['addJobRecord']) && $_POST['addJobRecord']=='oTzm50xfm') {

   // Validate date format

   if (!validateDate($jobDateStart) || !empty($jobDateEnd) && !validateDate($jobDateEnd)) {

      // Show the form

      $displayContent = $displayForm;

   // Validate data dates

   } else if ($jobTimeIn>$jobTimeOut) {

      // Show the form

      $displayContent = $displayForm;

   // Validate bonus values

   } else if (!empty($jobBonusId) && is_array($jobBonusId)) {

      // At least one jobBonusId checkbox was checked

      // Make sure its child input is not empty


      ... HERE'S WHERE I'M STUCK ...


   } else {

      // Everything looks good

      // Add record to database

   }

}

任何想法如何实现它?


斯蒂芬大帝
浏览 172回答 1
1回答

慕妹3146593

您可以使用数组键,并通过键检查孩子jobBonusId:foreach ($jobBonusId as $key => $bonusId) {&nbsp; &nbsp; if (!empty($bonusId)) {&nbsp; &nbsp; &nbsp; &nbsp; if (!empty($jobBonusAmount[$key])) { // check a child&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // if child is filled&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // not filled&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}这意味着,该$jobBonusId数组与$jobBonusAmount数组相同
打开App,查看更多内容
随时随地看视频慕课网APP