0

以下の関数によって生成された20個のドロップダウンフィールドを持つhtmlフォームがあります....

<?php
      $sub_1 = subject_show (subject_1, $scl_unique_id, $cls_sec_bat);
      if ($sub_1)
      {?>
     <tr>
        <td><?php echo $sub_1;?></td>
        <td><select name="subject_1" id="subject_1" style="min-width:100px">
          <?php 
          if(isset($subject_1)){?>
          <option value="<?php echo $subject_1; ?>" selected="selected"><?php echo $subject_1; ?></option>
          <?php }else{ ?>
          <option value="<?php echo $sub_1;?>" disabled="disabled" selected="selected"><?php echo $sub_1;?></option>
          <?php } ?>
          <option value="<?php echo MAR_ABS;?>"><?php echo MAR_ABS;?></option>
          <option value="<?php echo MAR_NA;?>"><?php echo MAR_NA;?></option>
          <?php
          for ($i=0; $i<=100; $i++)
          {
            echo '<option value="'.$i.'">'.$i.'</option>';
          }
          ?>
          </select></td>
      </tr>
     <?php
      }
      ?>

コードでは、関数が $sub_1 に値を持っている場合、ドロップダウン フィールドは subject_1 という名前で HTML 出力に出力されます。そうでない場合は印刷されません。

私が20回持っている同じコード。関数の値が $sub_2 または $sub_3 または $sub_4 から $sub_20 までの場合、フィールドは subject_2 または subject_3 または subject_4 から subject_20 までの名前で出力されます。

ユーザー入力と関数出力に応じて、任意のドロップダウン フィールドを出力できます。

読み上げの時は、20名前全部読み上げてる

if (isset($_POST['save_exit']))
    {
        $roll_number = strtoupper(trim(implode(' ', preg_split('/\s+/', $_POST["roll_number"]))));
        $subject_1 = $_POST["subject_1"];
        $subject_2 = $_POST["subject_2"];
        $subject_3 = $_POST["subject_3"];
        $subject_4 = $_POST["subject_4"];
        $subject_5 = $_POST["subject_5"];
        $subject_6 = $_POST["subject_6"];
        $subject_7 = $_POST["subject_7"];
        $subject_8 = $_POST["subject_8"];
        $subject_9 = $_POST["subject_9"];
        $subject_10 = $_POST["subject_10"];
        $subject_11 = $_POST["subject_11"];
        $subject_12 = $_POST["subject_12"];
        $subject_13 = $_POST["subject_13"];
        $subject_14 = $_POST["subject_14"];
        $subject_15 = $_POST["subject_15"];
        $subject_16 = $_POST["subject_16"];
        $subject_17 = $_POST["subject_17"];
        $subject_18 = $_POST["subject_18"];
        $subject_19 = $_POST["subject_19"];
        $subject_20 = $_POST["subject_20"];

ユーザーに空のドロップダウンリストを送信させたくないので、検証を次のように書いています

if(empty(subject_1))
{
say error
}

if(empty(subject_2))
{
say error
}

私はこれをすべての主題について20回書いています。

問題は、ユーザーがフォーラムに subject_1 と subject_2 と subject_3 のような名前の主題を 3 つしか持っていない場合です。残りの 17 科目すべてについてエラーが発生します。

フォームで利用可能なサブジェクトのみを検証するにはどうすればよいですか??

不明な場合はお知らせください。

4

2 に答える 2