Javascript 如何根据条件显示下拉切换引导的值?
我有下面的引导下拉列表。使用PHP我可以得到访问者的国家。因此,如果访客来自英国或以下未列出的任何其他国家,则必须在顶部显示英语,并将其从列表中删除。如下图所示。 我可以做PHP方面的工作,但是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
标准版本:
<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
?是的,很抱歉之前没有澄清这一点