【问题标题】:Hide div id="en" if value=$en如果 value=$en,则隐藏 div id="en"
【发布时间】:2014-02-17 08:41:49
【问题描述】:

谁能帮助我了解我页面上的语言。我有一个菜单,我可以从中选择语言 - 英语、克罗地亚语或德语。 我给你文件的代码来改变语言

    <?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。

感谢您的帮助。

【问题讨论】:

  • this答案(使用标准langhtml标签)

标签: javascript php jquery hide html


【解决方案1】:

你把事情复杂化了。您可以通过将一个类应用于所有语言 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>

例如,如果我们想显示英文,我们必须隐藏所有并显示这个英文

示例代码如下:

 // To hide all languages
 $(".lang").hide();

 // To show the desired one
 $("#en").show();

注意:

您必须使用上面的代码动态显示选定的 div,我展示了英文版的用于演示目的。您所要做的就是使用您的选择逻辑并遵循相同的模式来隐藏和显示

Simple Fiddle Demo

【讨论】:

  • 如果选择的语言是德语或赫尔瓦茨基语怎么办?代码如何检测页面加载时选择的语言。
  • 您可以通过添加一个类'selected'通过php指定
  • @Karolev 您可以使用 jQuery 更改事件来检测选择何时更改,然后按照我的逻辑,首先隐藏所有元素,然后显示选定的元素。有关api.jquery.com/change上的“更改”事件的更多信息
  • 我不太擅长 jQuery。如果你能给我一个如何做到这一点的例子,我将不胜感激。提前致谢!
猜你喜欢
  • 2021-08-25
  • 2019-02-15
  • 2019-11-07
  • 2017-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
相关资源
最近更新 更多