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>
4

2 に答える 2

0

私の好みには、JavaScript が少し含まれています。

<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>
于 2012-08-03T15:18:54.697 に答える