我有一个问题,我通过php动态地向div添加一个类,然后检查id"checkLang"是否有空间类,但它不起作用:(
也许有人知道这个问题?我的html:
<div id="checkLang" class ="<?php echo $valoda ?>"><div>
我和核实的那个div
if ($('#checkLang').hasClass('RU')){
<?php include("lan/ru.php"); ?>
};
if ($('#checkLang').hasClass('LV')){
<?php include("lan/lv.php"); ?>
};
我不知道为什么,但两个if都包含php语言文件。但可能是因为这个脚本在php文件中,标题为<?php header('Content-type: text/javascript'); ?>
,我在索引页中附加了类似javascript文件的文件,如<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");
}
但效果不佳:(
附言:对不起,如果这是一个愚蠢的问题,我是新手,但愿意学习!:)
看起来您的脚本没有添加到像这样的dom就绪处理程序中
jQuery(function($){
alert($('#checkLang').length)//it should alert 1 not 0
if ($('#checkLang').hasClass('RU')){
<?php include("lan/ru.php"); ?>
};
})
当前语言:
<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.S un labāk visus variableus,script failus等saukt anglúvalodā:)
在这里给出我的jsfiddle示例,您可以清楚地看到javascript能够检查给定的类是否设置在div上。
http://jsfiddle.net/n5e9a/
不管怎样,这两个php文件都将被渲染,因为这里的if检查是在客户端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);
});
它包含了您的内容,因为它已经生成了服务器端,所以当html网站被传输时,php脚本已经被压缩,而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();
};
});
这里的示例:
http://jsfiddle.net/yVpf4/
很难,它会降低所有语言内容;您应该考虑在php代码中进行语言选择,以避免额外的流量,除非您想在没有任何服务器交互的情况下仅通过javascript切换语言。
关于jan
正如Arun p Johny所说的
您的脚本没有添加到dom就绪处理程序中。。。
关于1月