从动态生成的下拉列表中动态 select

Dynamically select from a dynamically generated dropdown

我有一个动态生成的下拉列表 - 课程标识符和名称列表。基于变量“assigned_course_id”,我想从下拉列表中预选适当的值。我最好的尝试如下。预先感谢您的帮助。

<select name="course_id" id="course_id">
  <?php
       $assigned_course_id = $assignment['course_id'];
       foreach($courses as $course) { ?>
       <option value="<?= $course['course_id']?><?php if ($assigned_course_id == $course['course_id']) echo "selected";  ?>"><?= $course['course_name'] ?></option>
  <?php } ?>
</select> 

我认为这会起作用

<select name="course_id" id="course_id">
      <?php
           $assigned_course_id = $assignment['course_id'];
           foreach($courses as $course) { 
            $selected = "";
           if ($assigned_course_id == $course['course_id']) {
              $selected =  "selected";
           }
           echo '<option value="'.$course['course_id'].'" '.$selected.'> '.$course['course_name'] .'</option>';
       } ?>
    </select> 

这是因为您没有结束 value 属性,所以您选择的选项变为 <option value="optionvalueselected" -- 'optionvalue' 是您选择的选项的值,并且 'selected' 是您要设置的属性,但不会被设置,因为您从未结束 value

以下应该有效:

<select name="course_id" id="course_id">
  <?php
       $assigned_course_id = $assignment['course_id'];
       foreach($courses as $course) { ?>
       <option value="<?= $course['course_id']?>" <?php if ($assigned_course_id == $course['course_id']) { echo "selected"; } ?>><?= $course['course_name'] ?></option>
  <?php } ?>
</select>