Javascript 如何根据条件显示下拉切换引导的值?

Javascript 如何根据条件显示下拉切换引导的值?,javascript,php,jquery,twitter-bootstrap,Javascript,Php,Jquery,Twitter Bootstrap,我有下面的引导下拉列表。使用PHP我可以得到访问者的国家。因此,如果访客来自英国或以下未列出的任何其他国家,则必须在顶部显示英语,并将其从列表中删除。如下图所示。 我可以做PHP方面的工作,但是javascript呢,因为这不是一个选择下拉列表,也没有一个选择的 标准版本: <li class="dropdown"> <a href="#" data-toggle="dropdown" class="dropdown-toggle">English

我有下面的引导下拉列表。使用PHP我可以得到访问者的国家。因此,如果访客来自英国或以下未列出的任何其他国家,则必须在顶部显示英语,并将其从列表中删除。如下图所示。 我可以做PHP方面的工作,但是javascript呢,因为这不是一个选择下拉列表,也没有一个选择的

标准版本:

    <li class="dropdown">
        <a href="#" data-toggle="dropdown" class="dropdown-toggle">English <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="gr.html">Greek</a></li>
            <li><a href="it.html">Italian</a></li>
            <li><a href="cz.html">Czech</a></li>
        </ul>
    </li>
  • 当来自英国的游客进来时:

        <li class="dropdown">
            <a href="#" data-toggle="dropdown" class="dropdown-toggle">English <b class="caret"></b></a>
            <ul class="dropdown-menu">
                <li><a href="gr.html">Greek</a></li>
                <li><a href="it.html">Italian</a></li>
                <li><a href="cz.html">Czech</a></li>
            </ul>
        </li>
    
  • 以下是希腊人进入时HTML的内容:

        <li class="dropdown">
            <a href="#" data-toggle="dropdown" class="dropdown-toggle">Greek<b class="caret"></b></a>
            <ul class="dropdown-menu">
                <li><a href="en.html">English</a></li>
                <li><a href="it.html">Italian</a></li>
                <li><a href="cz.html">Czech</a></li>
            </ul>
        </li>
    

  • 这应该适合您:

    <?php 
    
        $country  = "Italian";
        $countrys = array("en" => "English", "gr" => "Greek", "it" => "Italian", "cz" => "Czech");
        $default = $countrys["en"];
    
    ?>
    
    <li class="dropdown">
        <a href="#" data-toggle="dropdown" class="dropdown-toggle"><?php echo (($key = array_search($country, $countrys)) !== FALSE ? $countrys[$key] : $country = $default); ?><b class="caret"></b></a>
        <ul class="dropdown-menu">
        <?php foreach(array_diff($countrys, array($country)) as $k => $v): ?>
            <li><a href="<?php echo $k; ?>.html"><?php echo $v; ?></a></li>
        <?php endforeach; ?>
        </ul>
    </li>
    
    
    
  • 编辑:

    如果您获得的是国家/地区快捷方式而不是全名,请使用以下选项:

    <?php 
    
        $country  = "gr";
        $countrys = array("en" => "English", "gr" => "Greek", "it" => "Italian", "cz" => "Czech");
        $default = "en";
    
    ?>
    
    <li class="dropdown">
        <a href="#" data-toggle="dropdown" class="dropdown-toggle"><?php echo (in_array($country, array_flip($countrys)) !== FALSE ? $countrys[$country] : $countrys[$country = $default]); ?><b class="caret"></b></a>
        <ul class="dropdown-menu">
        <?php foreach(array_diff_key($countrys, array_flip(array($country))) as $k => $v): ?>
            <li><a href="<?php echo $k; ?>.html"><?php echo $v; ?></a></li>
        <?php endforeach; ?>
        </ul>
    </li>
    
    
    

  • 那么你是只想显示英语,还是只想在其他字母的顶部显示英语?@Rizier123我想显示“英语”而不是“语言”以及你想从下面的列表中获取的值?@Rizier123让我们使用每个国家的前两个字母,让它变得简单,只要告诉我们如果html应该是英文的,它会是什么样子谢谢你。为了澄清我的想法,如果访客国家不包括在数组中,将显示en?@Xalloumokkelos是的,只要尝试一下,您就会看到:D(例如
    $country=“asdsfg”
    )我想我遗漏了一些东西。。。我的国家是
    $country=“CY”
    。所以我必须得到英文,因为它没有列在数组中。我明白了。但是,如果我用
    CY
    替换
    IT
    ,它应该显示
    意大利语
    ,而不是…@Xalloumokkelos,那么你得到的国家是快捷方式而不是全名?e、 g.您得到/拥有:
    en,gr
    而不是
    English,green
    ?是的,很抱歉之前没有澄清这一点