我有一个problam,我通过php dynalically添加一个类到div,然后检查id“checkLang”是否有空格类,但它不起作用:(
也许有人知道这个问题? 我的HTML:
<div id="checkLang" class ="<?php echo $valoda ?>"><div>
和我用
检查的divif ($('#checkLang').hasClass('RU')){
<?php include("lan/ru.php"); ?>
};
if ($('#checkLang').hasClass('LV')){
<?php include("lan/lv.php"); ?>
};
我不知道为什么,但两个ifs都包含语言php文件。
但也许原因是因为这个脚本在带有标题<?php header('Content-type: text/javascript'); ?>
的php文件中我附加了像<script type="text/javascript" src="php/FormuValidacija.php" /></script>
我试过
if($_GET['lang']=="latviesu"){
include("php/lan/lv.php");
}
else($_GET['lang']=="krievu"){
include("php/lan/ru.php");
}
但也行不通:(
P.S。对不起,如果这是一个愚蠢的问题,我是这个东西的新人,但愿意学习! :)
答案 0 :(得分:2)
看起来您的脚本未添加到像
这样的dom ready处理程序中jQuery(function($){
alert($('#checkLang').length)//it should alert 1 not 0
if ($('#checkLang').hasClass('RU')){
<?php include("lan/ru.php"); ?>
};
})
答案 1 :(得分:1)
目前的语言:
<div id="checkLang" class ="<?php echo $valoda ?>"><div>
包括您的本地化文件:
<div class="ru" style="display:none;">
<?php include("lan/ru.php"); ?>
</div>
<div class="lv" style="display:none;">
<?php include("lan/lv.php"); ?>
</div>
获取当前语言并显示相应的div
<script type="text/javascript">
$(document).ready(function(){
var currLng = $('#checkLang').attr('class'); // get current language, i.e class of #checkLang
$('div.' + currLng).show(); // show div with corresponding class, i.e lang
});
</script>
但是,最好在服务器端获取语言,而不是将未使用的文件加载到客户端(即HTML)
P.Sunlabākvisusvariablus,script failus etcsauktnglūvalodā:)
答案 2 :(得分:0)
在这里给出我的jsfiddle示例,你可以清楚地看到javascript能够检查div上是否设置了给定的类。
无论如何都将呈现两个php文件,因为这里的if check是在客户端javascript上完成的。如果您希望仅在客户端进行检查后才从php文件中呈现数据。然后,您必须从客户端获取数据,而不是从服务器端提供数据。
这样做的一种方法是通过ajax。例如。你可以创建一个PHP脚本,根据查询返回html内容,如:
checklang.php?LANG = RU
在javascript代码中,您可以设置如下设置:
$.get('checklang.php?lang=RU', function(data) { //switch RU with a js variable so you can change between RU and LV programatically
$('#some-content-div').html(data);
});
答案 3 :(得分:0)
它包含你的内容,因为它已经生成了服务器端,所以当html网站被转移时,php脚本已经被rendnered而javascript被处理客户端,你需要调整你的尝试
你看这会起作用
<div id="checkLang" class ="<?php echo $valoda ?>"><div>
<div class="ru" style="display:none;">
<?php include("lan/ru.php"); ?>
</div>
<div class="lv" style="display:none;">
<?php include("lan/lv.php"); ?>
</div>
$(document).ready(function()
{
if ($('#checkLang').hasClass('RU')){
$('.ru').show();
}
if ($('#checkLang').hasClass('LV')){
$('.lv').show();
};
});
这里的例子:
很难说它会反映所有语言内容;你应该考虑在php代码中进行语言选择以避免额外的流量,除非你想通过javascript只在没有任何服务器交互的情况下切换语言。关于jan
也正如Arun P Johny所说:
...你的脚本没有添加到dom ready handler ...
关于jan