2012-08-03 2 views
0

post lang은 사용자의 위치에 따라 자동으로 설정되며, post lang에 따라 언어 드롭 다운 값을 설정하고 싶습니다.변수에 따라 선택 기본값을 변경하는 방법?

이 내가 사용하려고 코드는하지만 밖으로 성공 :

<select id="lang" data-default="<?=$lang?>"> 
    <option value="en">English</option> 
    <option value="fr">Fran&ccedil;ais</option> 
    <option value="es">Espa&ntilde;ol</option> 
    ... 
</select> 

<script type="text/javascript"> 
    (function() { 
     var sel = document.getElementsByTagName('select'), l = sel.length, i, 
      def, opts, m, j; 
     for(i=0; i<l; i++) { 
      if(def = sel[i].getAttribute("data-default")) { 
       opts = sel[i].options; 
       m = opts.length; 
       for(j=0; j<m; j++) { 
        if(opts[j].value == def) { 
         opts[j].selected = true; 
         break; 
        } 
       } 
       sels[i].removeAttribute("data-default"); 
      } 
     } 
    })(); 
</script> 

답변

0

내 취향은 자바 스크립트의 비트를 포함 작동하지 않음 (테스트 안 함)

<label for="lang">Language</label> 
<select id="lang"> 
<?php // Don't use the shorthand notation! 

// $_POST['lang'] = $lang; 
// You're overwriting $_POST['lang']... should be: 
$lang = $_POST['lang']; 

switch ($lang) { 
case "en": $en = "selected"; break; 
case "fr": $fr ="selected"; break; 
} 
?> 

    <!-- <option value="en" selected="<?$en?>">English</option> --> 
    <!--        ^^^^^^^ see below for fixed line --> 
    <option value="en" selected="<?php echo $en; ?>">English</option> 

    <!-- same for other options, adjusting the lang code --> 

</select> 
0

내가 주석과 코드를 수정했습니다, 그것은해야한다 :

<label for="lang">Language</label> 
<select id="lang"> 
        <? 
         $_POST['lang'] = $lang; 

         switch ($lang) { 
         case "en": 
         $en = "selected"; 
         break; 
         case "fr": 
         $fr ="selected"; 
         break; 
        ?>       

        <option value="en" selected="<?$en?>">English</option> 
        <option value="fr" selected="<?$fr?>">Francais</option> 
        <option value="es" selected="<?$es?>">Español</option> 
        <option value="de" selected="<?$de?>">Deutsch</option> 
        <option value="chin_trad" selected="">Chinese Traditional</option> 
        <option value="chin_orig" selected="">Chinese Original</option> 
       </select> 
+0

도움을 주셔서 감사합니다. :) – eric

관련 문제