2012-09-08 3 views
0

PHP로 생성 된 드롭 다운이 있습니다.PHP에서 드롭 다운 값 선택 foreach

<select name="diploma" id="diploma-<? echo $edu['id']; ?>"> 
        <? foreach($diplomas->result_array() as $diploma) { 
      echo "<option value=".$diploma['id'].">".$diploma['name']."</option>"; 
          } ?> 
</select> 

또한 데이터베이스의 값인 <? echo $edu['diploma']; ?>이 있습니다. 이 값과 일치하는 드롭 다운의 옵션에 selected="selected"을 추가하고 싶습니다. jquery를 사용해야할까요? 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

1

당신은이 같은 루프 내에서 확인할 수 있습니다

<select name="diploma" id="diploma-<? echo $edu['id']; ?>"> 
    <? 
    foreach($diplomas->result_array() as $diploma) 
     { 
      $selected = ($edu['diploma']==$diploma['name']) ? " selected='selected' " : "" ; 
      echo "<option $selected value=".$diploma['id'].">".$diploma['name']."</option>"; 
     } 
    ?> 
</select> 
1

를 사용하여 같은 PHP 코드 :

<select name="diploma" id="diploma-<? echo $edu['id']; ?>"> 
    <? foreach($diplomas->result_array() as $diploma) { 
     echo "<option value=".$diploma['id']; 
     if ($edu['diploma'] == $diploma['name']) { 
      echo 'selected="selected"'; 
     } 
     echo ">".$diploma['name']."</option>"; 
    } ?> 
</select> 

코드는 비교 코드를 짧게하는

<select name="diploma" id="diploma-<? echo $edu['id']; ?>"> 
    <? 
    foreach($diplomas->result_array() as $diploma) 
     { 
      if($edu['diploma']==$diploma['name']) 
      { 
       echo "<option selected ='selected' value=".$diploma['id'].">".$diploma['name']."</option>"; 
      } 
      else 
      { 
       echo "<option value=".$diploma['id'].">".$diploma['name']."</option>"; 
      } 
     } 
    ?> 
</select> 

또는 각 옵션에 대해 $edu['diploma'] 변수가있는 $diploma['name'] 및 출력 selected="selected" 그들이 같다면.

$edu['diploma']의 내용에 따라 다른 것과 비교해야합니다. $edu['diploma']id 변경 사항이 포함 된 경우 $diploma['name']에서 $diploma['id']으로 변경하십시오. 내가 생각 해낸거야 그 $edu['diploma']['id'] == $diploma['id']

1

: $edu['diploma']이 졸업장 자체 오브젝트가 포함 된 경우

, 당신은이 방법을 비교해야

<select name="diploma" id="diploma-<? echo $edu['id']; ?>"> 
    <?php foreach ($diplomas->result_array() as $diploma) { 
    //echo "<option value='{$diploma['id']}'>{$diploma['name']}</option>"; 
    echo "<option value='{$diploma['id']}"; 
    if ($edu['diploma'] === $diploma['name']) { 
     echo " selected"; 
    } 
    echo ">{$diploma['name']}</option>\n"; 
} ?> 
</select> 
0
<select name="diploma" id="diploma-<? echo $edu['id']; ?>"> 
    <?php foreach($diplomas->result_array() as $diploma) { 
     $selected = $diploma['id'] == $edu['diploma'] ? ' selected="selected"' : ''; 
     echo '<option value="' . $diploma['id'] . '"' . $selected . '>' . $diploma['name'] . '</option>'; 
    } ?> 
</select> 

루프 내부의 검사를 수행하고, 에코 값이 일치하면 선택된 속성. 참고, 나는 ternary statement 테스트를 사용하고 있습니다.

0

내가 맞으면 이걸 사용해보십시오.

<select name="diploma" id="diploma-<? echo $edu['id']; ?>"> 
<? 
$selected = $edu['diploma']; 
foreach($diplomas->result_array() as $diploma) { 
    if($diploma['name'] == $selected){ 
    echo '<option selected="selected" value="'.$diploma['id'].'">'.$diploma['name']."</option>"; 
    }else{ 
    echo '<option value="'.$diploma['id'].'">'.$diploma['name']."</option>"; 
    } 
} 
?> 
</select>