변경

2011-11-01 4 views
0

나는 이런 옵션의 intial 그룹이 있습니다. 그렇다면 value$test과 같은 곳에있는 옵션을 변경하고 싶습니다. 이 같은 것 <OPTION SELECTED>변경

예를 들면. $test = 3; 그래서, 선택된 옵션은 네 번째가되어야합니다. $test이 비어 있거나 정의되어 있지 않으면 첫 번째 옵션이 선택되어 있어야합니다.

답변

2
<select name="item[type]" id="selectBoxId"> 
<option value="0" class="dr">First</option> 
<option value="1" class="dr">Second</option> 
<option value="2" class="dr">Third</option> 
<option value="3" class="dr">Fourth</option> 
</select> 


<script type="text/javascript"> 
    var test = "<?= $test; ?>"; 
    if (test != '' && parseInt(test)) { 
     document.getElementById('selectBoxId').selectedIndex = test; 
    } 
</script> 
+1

난 단지 사용자 입력의 어떤 종류 후 DOM을 변경 자바 스크립트를 사용합니다. 그러나이 경우에는 어떤 옵션을 선택해야하는지 이미 알고 있으므로 JavaScript를 사용할 필요가 없습니다. 대신, DOM에 이미 PHP 로직을 사용하여 올바른 정보가 모두 있는지 확인하여 올바른 속성에 선택한 속성을 추가하십시오. 또한이 방법을 사용하는 유일한 방법은 JavaScript를 동일한 페이지에 추가하여 PHP 변수에 액세스하거나 DOM에 숨겨진 변수를 추가하여 외부 JS 스크립트로 검색 할 수있게하는 것입니다. 둘 다 이상에서 멀리 떨어져 있습니다. – Alec

+0

아, 전적으로 동의합니다. 그러나 우리는 그의 대본이 어떻게 조직되어 있는지, 심지어 그가 쪼개져 있는지 알지 못합니다. 아마도 그는 변수가 정의 될 수있는 템플릿 시스템을 사용하고 있습니다. 나는 단지 저에게 주어진 매우 제한된 정보에 대한 간단한 솔루션을 제공하고있었습니다. 그럼에도 불구하고, 나는 귀하의 성향에 진심으로 감사 드리며 전적으로 동의합니다. –

1

"[유형]"을 선택 이름에서 제거하고 "항목"으로 간단하게 만드십시오. 그런 다음이 코드를 실행하십시오.

$test = isset($_POST['item']) ? $_POST['item'] : "0";

2

한 가지 방법 :

<select name="item[type]"> 
    <option <?=$test==0?'selected="selected"':'';?> value="0" class="dr">First</option> 
    <option <?=$test==1?'selected="selected"':'';?> value="1" class="dr">Second</option> 
    <option <?=$test==2?'selected="selected"':'';?> value="2" class="dr">Third</option> 
    <option <?=$test==3?'selected="selected"':'';?> value="3" class="dr">Fourth</option> 
</select> 

또 다른 :

<? $selected[$test] = 'selected="selected"'; ?> 

<select name="item[type]"> 
    <option <?=$selected[0];?> value="0" class="dr">First</option> 
    <option <?=$selected[1];?> value="1" class="dr">Second</option> 
    <option <?=$selected[2];?> value="2" class="dr">Third</option> 
    <option <?=$selected[3];?> value="3" class="dr">Fourth</option> 
</select> 
1
// assuming you are using a loop: in the loop where you create the options 
    $selected_html = $test == $loop_var ? ' selected="selected" ' : ''; 
    echo "<option value=\"$loop_var\" class=\"dr\"$selected_html>$text</option>";