2014-06-30 4 views
0

$ a = x 일 경우 페이지가로드 될 때 선택 양식에 나타납니다. $ a = y이면 option2가 선택 양식에 나타납니다. 선택 항목이 나타납니다. 어떻게 할 수 있습니까? 나는 이것을 성취합니까?선택 양식의 기본 선택 제어

아래의 모든 코드는 테이블의 모든 행에 있으며 행 수는 알 수 없습니다.

PHP :

$a; 
    echo "<div class='res'> State:"; 
      if ($a[0]!="") $a=x; 
      else if ($b[0]!="") $a=y; 
      else echo "None"; 

echo "<form class='form-horizontal'> 
    <fieldset > 
     <span class='control-group' > 
     <span class='controls'> 
      <select id='fl' class='form-control' style='cursor:pointer;'> 
       <option selected='selected' style='display:none;' value='0'>Select</option> 
       <option value='1'>Option1</option> 
       <option value='2'>Option2</option> 
       </select> 

     </span> 
     </span> 
     <div><button id='mybtn' type='button'>Save</button></div> 
    </fieldset> 

</form>"; 

echo "</div"; 
+1

디폴트가되고 싶은 옵션에'selected' 속성을 추가합니다. – Barmar

+0

선택된 속성은 jquery를 통해 추가해야하지만 $ a는 PHP 변수입니다 – user3774008

답변

1
switch($a) { 
case 'x': 
    $default = 1; 
    break; 
case 'y': 
    $default = 2; 
    break; 
default: 
    $default = 0; 
} 

echo "<form class='form-horizontal'> 
    <fieldset > 
     <span class='control-group' > 
     <span class='controls'> 
      <select id='fl' class='form-control' style='cursor:pointer;'> 
       <option " . ($default == 0 ? "selected='selected'" : "") . " style='display:none;' value='0'>Select</option> 
       <option " . ($default == 1 ? "selected='selected'" : "") . " value='1'>Option1</option> 
       <option " . ($default == 2 ? "selected='selected'" : "") . " value='2'>Option2</option> 
      </select> 

     </span> 
    </span> 
    <div><button id='mybtn' type='button'>Save</button></div> 
    </fieldset> 

</form>"; 
+0

솔루션은 완벽합니다 .. – user3774008

1

내가 좋아하는 옵션의 배열을 구축 할 것입니다 : 당신의 선택 상자를 구축, 그리고

$option = [0=>'select', 1=>'option1', 2=>'option2' ...]; 

을; 그냥 배열을 통해 루프 :

적절한 기본값을 선택하는 조건.

foreach($option as $k=>$v){ 
    if(<your condition>){ 
    $selected = 'selected'; 
    }else{ 
    $selected = ""; 
    } 
    echo "<option value='$k' '$selected'>$v</option>; 
} 

조건이 단순하면 코드를 단순화하기 위해 3 항 연산자를 사용할 수 있습니다. $selected = (condition) ? 'value for true' : 'value for false';

0

는 에코 앞에 다음 코드를 추가합니다 : 이것은 "선택"이 옵션을 숨길 수

"$showDefault 
<option value='1' $option1 >Option1</option> 
<option value='2' $option2 >Option2</option>" 

:

$option1 = ''; 
$option2 = ''; 
$showDefault = "<option value=''>Select</option>"; 
if ($a == $x) { 
    $option1 = 'selected'; 
    $showDefault = ''; 
} else if ($a == $y) { 
    $option2 = 'selected'; 
    $showDefault = ''; 
} 

는 그런 일하는 HTML 옵션으로 라인을 변경 그것이 필요하지 않는 한. 그것을하는 다른 방법이 있지만이 방법은 꽤 간단합니다.

0

당신은 필요하지 않습니다 "선택 = '선택'"단지 선택 :

<option selected value='0'>Selected</option> 

일반적으로, 나는 삼항 문이 설정 것처럼 :

?> 
<option <?=$a=='':'selected'?''?> value='0'>Select</option> 
<option <?=$a=='x':'selected'?''?> value='1'>Option 1</option> 
<option <?=$a=='y':'selected'?''?> value='2'>Option 2</option> 
<? 
+1

PHP 모드를 벗어나기보다는'echo'를 사용하기 때문에 짧은 태그는 효과가 없습니다. – Barmar

+0

또한 삼항 결과는 거꾸로 표시됩니다. – Barmar

+0

주소 @ Barmar의 의견으로 업데이트 됨 – Justin