2010-11-18 4 views
2

여기 나는 어리석은 질문을 가지고, 당신이 나를 도울 수 있기를 바랍니다.<select> 요소에서 선택된 데이터를 유지하는 방법은 무엇입니까? HTML

<option selected="selected">Select type...</option> 
<option value="1">Doctor</option> 
<option value="2">Patient</option> 

나는이 메뉴에서 하나 개의 값을 선택하고 데이터를 전송하기 위해 옆에있는 제출 버튼을 사용해야 할 때마다 :

나는 다음과 같이 선택 요소 및 옵션을 사용하여 메뉴를 만들 수 있습니다. 하지만 페이지가 새로 고침 될 때마다이 메뉴가 표시됩니다. 유형 선택 ... 지난 번 선택한 값을 표시하고 싶지만 어떻게해야할지 모릅니다.

미리 감사드립니다.

+0

+1 'choosed'의 경우. 그게 내 새로운 좋아하는 단어 야 :) – MrMisterMan

답변

1

selected = "selected"를 선택한 옵션으로 옮기고 싶습니다.

PHP에서 그렇게하는 것은 너무 거친 일이 아닙니다. 목록의 각 값에 대한 $ _POST [ "selectBox"]와 같이 선택 상자의 $ _POST 또는 $ _GET (양식을 보냈지 만) 값을 확인하십시오. 일치하는 항목을 찾으면 선택한 = "selected"문자열을 반향 출력합니다. 값이 비어 있으면 기본값으로 출력하십시오.

+0

아무 문제 없어! – DampeS8N

0

선택한 서버 측 언어를 사용하여 선택한 값을 데이터베이스, XML 또는 텍스트 파일에 저장해야합니다. 편집 : 귀하의 질문에 오해 한 것 같습니다.

0

몇 가지 방법이 있습니다.

제출시 해당 값을 $ _SESSION 값으로 저장하고이를 사용하여 페이지로드시 선택을 설정할 수 있습니다.

자바 스크립트를 사용하면 변경시 쿠키를 설정하거나 매개 변수 (url? selecttype = 1)를 추가 할 URL을 변경하고 PHP를 사용하여 페이지로드시이를 설정할 수 있습니다.

쿼크 모드에 JS에서 쿠키의 좋은 사용에있다 : http://www.quirksmode.org/js/cookies.html이를 달성하기 위해 가장 쉬운 방법은 배열의 <select> 옵션을 채울 것입니다

1

, 다음 루프는 <option> 목록을 표시하고 선택 상태로 표시하기를 통해이 $ _POST 변수는 올바른 값과 일치입니다 : 당신은 요구에 맞게 선택된 하나 변경해야

<?php $myselect = array(1=>'Doctor', 2=>'Patient'); ?> 
<select name="myselect"> 
    <option>Select type...</option> 
    <?php foreach ($myselect as $value => $label): ?> 
    <option value="<?php echo $value; ?>"<?php if (isset($_POST['myselect']) && $_POST['myselect'] == $value) echo ' selected'; ?>> 
     <?php echo $label; ?> 
    </option> 
    <?php endforeach; ?> 
</select> 
+0

고마워요 !!! 그것은 내 문제를 해결했다. – manxing

0

는 ....

function create_select($properties, $opts) 
{ 
    $out="<select "; 
    foreach ($properties as $propname=>$propval) { 
     $out.=" $propname='$propval'"; 
    } 
    $out.=">\n"; 
    foreach ($opts as $val=>$caption) { 
     $out.="<option value='$value'"; 
     if ($_REQUEST[$properties['name']]==$val) $out.=" SELECTED"; 
     $out.=">$caption</option>\n"; 
    } 
    $out.="</select>"; 
    return $out; 
} 
print create_select(array('name'=>'direction', 
        'id'=>'direction', 
        'class'=>'colourful', 
        'onChange'=>''), 
       array('N'=>'North', 
        'S'=>'South', 
        'E'=>'East', 
        'W'=>'West')); 
1
<select name="myselect"> 
    <?php 
     $myselect = array('Select type...','Doctor','Patient');    
     for($i=0; $i<=2; $i++){ 
      echo "<option value=\"{myselect[$i]}\""; 
      if (isset($_POST['myselect']) && $_POST['myselect'] == $myselect[$i]){ 
      echo 'selected=\"selected\"'; 
      } 
      echo ">{$myselect[$i]}</option>"; 
     } 
    ?> 
</select> 
관련 문제