Javascript 如果值=$en,则隐藏div id=“en”
有人能帮我学语言吗在我的页面上。我有一个菜单,我可以从中选择语言——英语、克罗地亚语或德语。 我给你文件的代码来改变语言Javascript 如果值=$en,则隐藏div id=“en”,javascript,php,jquery,hide,html,Javascript,Php,Jquery,Hide,Html,有人能帮我学语言吗在我的页面上。我有一个菜单,我可以从中选择语言——英语、克罗地亚语或德语。 我给你文件的代码来改变语言 <?php class home_header_language { protected $_DBconn; protected $_front_template; protected $_view; public function __construct($v
<?php
class home_header_language
{
protected $_DBconn;
protected $_front_template;
protected $_view;
public function __construct($view)
{
$this->_front_template = Zend_Registry::get('front_template');
$this->_view = $view;
}
public function truncate($phrase,$start_words, $max_words)
{
$phrase_array = explode(' ',$phrase);
if(count($phrase_array) > $max_words && $max_words > 0)
$phrase = implode(' ',array_slice($phrase_array, $start_words, $max_words)).'...';
return $phrase;
}
public function class_body()
{
$translator = Zend_Registry::get('translator');
$globalForm = new Settings_Form_GlobalSettingsForm();
$lang_arr = $globalForm->default_language->getMultiOptions();
if(Eicra_Global_Variable::getSession()->sess_lang)
{
$default_lang_code = Eicra_Global_Variable::getSession()->sess_lang;
$default_lang_name = $globalForm->default_language->getMultiOption($default_lang_code);
$default_lang_code_arr = explode('_', $default_lang_code);
$default_territory_code = $default_lang_code_arr[1];
}
else
{
$global_conf = Zend_Registry::get('global_conf');
$default_lang_code = $global_conf['default_language'];
$default_lang_name = $globalForm->default_language->getMultiOption($default_lang_code);
$default_lang_code_arr = explode('_', $default_lang_code);
$default_territory_code = $default_lang_code_arr[1];
}
$default_site_lang_arr = Zend_Locale_Data::getList($default_lang_code, 'language');
$default_site_lang = $default_site_lang_arr[$default_lang_code_arr[0]];
$default_site_territory_arr = Zend_Locale_Data::getList($default_lang_code, 'territory');
$default_site_territory = $default_site_territory_arr[$default_territory_code];
$tab_base_link = Zend_Controller_Front::getInstance()->getRequest()->getRequestUri();
?>
<script type="text/javascript">
$(document).ready(function() { //on DOM ready
$("a.change_lang").click(function() {
var self = this;
var lang = $(self).attr('rel');
$.ajax({
url: "<?php echo $this->_view->url( array('module' => 'Settings','controller' => 'language', 'action' => 'update' ), 'adminrout', true) ?>",
type: 'POST',
data: { lang_name : lang },
beforeSend: function(){
$(self).children("span:nth-child(1)").children("img:nth-child(1)").attr('src','data/adminImages/commonImages/flag_loader.gif');
$(self).children("span:nth-child(1)").children("img:nth-child(1)").attr('height','15');
},
success: function(response)
{
//alert(response);
var json_arr = eval("("+response+")");
var url = '<?php echo $tab_base_link; ?>';
var baseUrl = '<?php echo $this->_view->baseUrl(); ?>';
var ckUrl = 'Administrator/login/auth';
var match_res = url.match(/Administrator\/login\/auth/g);
var tmp = false;
for (i in match_res)
{
if(match_res[i] == ckUrl){ tmp = true; }
//alert(i + ' : ' + match_res[i]);
}
if(tmp == true)
{
var rightUrl = baseUrl+'/Administrator';
}
else
{
var rightUrl = url;
}
if(json_arr.status == 'ok')
{
document.location.href=rightUrl;
}
}
});
});
});
</script>
<script type="text/javascript">
$(document).ready(function() {
$(".dropdown img.flag").addClass(""); //flagvisibility
$(".dropdown dt a").click(function() {
$(".dropdown dd ul").toggle();
});
$(".dropdown dd ul li a").click(function() {
var text = $(this).html();
$(".dropdown dt a span").html(text);
$(".dropdown dd ul").hide();
$("#result").html("Selected value is: " + getSelectedValue("sample"));
});
function getSelectedValue(id) {
return $("#" + id).find("dt a span.value").html();
}
$(document).bind('click', function(e) {
var $clicked = $(e.target);
if (! $clicked.parents().hasClass("dropdown"))
$(".dropdown dd ul").hide();
});
$("#flagSwitcher").click(function() {
$(".dropdown img.flag").toggleClass("flagvisibility");
});
});
</script>
<dl id="sample" class="dropdown" style="margin:0; padding:0;">
<dt><a href="javascript:void(0);"><span><?php echo $default_site_lang.' - '.$default_site_territory; ?><span class="flag"><img src="data/adminImages/flagsImage/<?php echo $default_territory_code; ?>.gif" border="0" title="<?php echo $default_lang_name; ?>" /></span></span></a></dt>
<dd>
<ul>
<?php
if($lang_arr)
{
foreach($lang_arr as $lang_arr_key => $lang_arr_value)
{
$key_arr = explode('_', $lang_arr_key);
$iso_code = $key_arr[0];
$territory_code = $key_arr[1];
$localeData = Zend_Locale_Data::getList($lang_arr_key, 'layout');
$site_direction = $localeData['characters'];
$site_direction_symbol = ($site_direction == 'right-to-left') ? 'rtl' : 'ltr';
$site_lang_arr = Zend_Locale_Data::getList($lang_arr_key, 'language');
$site_lang = $site_lang_arr[$iso_code];
$site_territory_arr = Zend_Locale_Data::getList($lang_arr_key, 'territory');
$site_territory = $site_territory_arr[$territory_code];
?>
<li><a class="change_lang" rel="<?php echo $lang_arr_key.':'.$site_direction_symbol; ?>" href="javascript:void(0);"><?php echo $site_lang.' - '.$site_territory; ?><span class="flag"><img src="data/adminImages/flagsImage/<?php echo $territory_code; ?>.gif" border="0" title="<?php echo $lang_arr_value; ?>" /></span></a></li>
<?php
}
}
?>
</ul>
</dd>
</dl>
<?php
}
}
try
{
$home_header_language_class = new home_header_language($this);
$home_header_language_class->class_body();
}
catch(Exception $e)
{
echo 'You have to create menu first.';
}
?>
在页面的许多地方,我都有以下示例:
<div id="en">English text</div>
<div id="hr">Hrvatski text</div>
<div id="de">German text</div>
如果我选择英语,我如何隐藏id=hr和id=de的div
谢谢你的帮助。你把事情复杂化了。您只需将一个类应用于所有语言div,即可获得所需的结果 让我们向语言div添加一个类lang。更新后的html标记将是
<div id="en" class="lang">English text</div>
<div id="hr" class="lang">Hrvatski text</div>
<div id="de" class="lang">German text</div>
注:
您必须使用上面的代码动态地显示所选的div,我已经显示了用于演示目的的英文div。您所要做的就是使用您的选择逻辑并遵循相同的模式来隐藏和显示
请参阅答案使用标准语言html标记如果所选语言为德语或Hrvatski怎么办?代码是如何检测页面加载时选择的语言的。您可以通过php添加类'selected'@Karolev来指定。您可以使用jQuery change event来检测选择何时更改,然后按照我的逻辑,首先隐藏所有元素,然后显示所选元素。关于我不太擅长jQuery的“更改”事件的更多信息。如果你能给我举个例子,我将不胜感激。提前谢谢!
// To hide all languages
$(".lang").hide();
// To show the desired one
$("#en").show();