2011-02-04 2 views
1

У меня есть выпадающее меню на моем сайте, который я хочу использовать для переключения между различными языками:Создание меню для переключения языков на сайте

<select onChange="if(this.selectedIndex!=0) self.location=this.options[this.selectedIndex].value" name="userLanguage" id="userLanguage"> 
    <option value="http://demo.com/?lang=en"> 
       English (International)</option>  
     <option value="http://demo.com/?lang=es"> 
       Español (European)</option> 
        </select> 

Как я могу получить над меню, чтобы отобразить какой язык в настоящее время отображается. Есть ли способ показать активное состояние. Сайт использует php.

Заранее спасибо.

ответ

2

Использование PHP это, идет. (Я немного изменил выбор.)

<select onChange="if(this.selectedIndex!=0) self.location='http://demo.com/?lang='+this.options[this.selectedIndex].value" name="userLanguage" id="userLanguage"> 
    <option <?php if ($_GET['lang'] == "en") { ?>selected="selected"<?php } ?> value="en">English (International)</option>  
    <option <?php if ($_GET['lang'] == "es") { ?>selected="selected"<?php } ?> value="es">Español (European)</option> 
</select> 

Надеюсь, что это поможет!

+0

+1 Если это единственное поле в форме, вы также можете изменить название select на 'lang' и просто отправить его. – jeroen

0

Если вы используете PHP Я предлагаю вам refector код, как это, потому что, как вы легко можете добавить новый язык, без написания HTML-кода или дополнительного JavaScript. Вы можете использовать массив $ langs для хранения текущего набора языков.

Я также сделал $ server_location переменная, которая содержит текущий URL-адрес страницы. Таким образом, у вас не будет проблем при перемещении страницы на разные серверы и домены или при переименовании вашей страницы.

<? 
     $langs = array('en' => 'English (International)', 
         'es' => 'Español (European)' 
        ); 

     function is_current_language($code) 
     { 
       return ($code == $_GET['lang'])? 'selected="selected"': ""; 
     } 

     $server_location= $_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']; 

    ?> 

    <select onchange="if(this.selectedIndex!=0) self.location='<?=$server_location;?>?lang='+this.options[this.selectedIndex].value" name="userLanguage" id="userLanguage"> 

     <? foreach($langs as $code => $lang): ?> 
      <option <?= is_current_language($code); ?> value="<?= $code; ?>"> 
      <?= $lang; ?> 
      </option> 
     <? endforeach; ?> 

    </select> 
Смежные вопросы