2015-06-22 117 views
-2

我有一個動態生成的下拉列表 - 課程標識符和名稱列表。根據變量「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> 
+2

我投票結束這個問題作爲題外話,因爲它的印刷錯誤問題,這對於未來的訪問者沒有用 –

+0

[改變下拉選項動態選擇的可能的重複](http://stackoverflow.com/questions/ 12733990 /更改 - 下拉選項 - 動態選擇) –

回答

1

那是因爲你沒有結束value屬性,所以您選擇的選項將變爲<option value="optionvalueselected" - 「optionvalue」是你選擇的值選項,「選擇」是你要設置的屬性,但不會設置,因爲你永遠不會結束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> 
+0

傑出的標記!像魅力一樣工作!感謝您的隊友! – John

0

我認爲這將做的工作

<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> 
+0

爲什麼會這樣做,爲什麼代碼不起作用? –

+0

@NullPoiиteя查看我的回答。解釋在 –

+0

,因爲問題中沒有空格。該值被連接到另一個html屬性。它創造了一個混亂。除了保持PHP和HTML分開是一個很好的做法 –