1。 我有一个网站,在页面顶部有一个下拉列表,让用户指定英语和西班牙语作为语言。
如果该语言是在网页上进行的第一次选择,则此工作正常,如果西班牙语应该如此,则URL将更改为mywebsite.es/index.php?lang=es。
但是,如果我使用自由文本输入或任何其他下拉框在页面下方进行搜索,则无法识别URL的语言部分。
所以,而不是以
结尾的搜索结果mywebsite.es/index.php?lang=es/search.php?location=&type1=&price1=&condition=&category=&q=shoes 我明白了 mywebsite.es/search.php?location=&type1=&price1=&condition=&category=&q=shoes
以下是我目前脚本的片段:
<script type="text/javascript">
function go(){
location=document.lan.langu.
options[document.lan.langu.selectedIndex].value
}
</script>
<form name="lan">
<select name="langu" size="1" onChange="go()">
<option><?php print translate("Language"); ?></option>
<option value="">English</option>
<option value="/index.php?lang=es">Español</option>
</select>
</form>
<form name='search' action='<?php print $config_baseHREF ?>search.php'>
(search.php文件在语言之后调用其余的URL)。
2。 此外,如果语言在会话中途改变,是否有办法更改页面的语言,以便网页上的现有内容保持不变,并且不会返回主页。
由于
答案 0 :(得分:0)
您应该在网址和中保存语言。如果有会话,则使用其lang参数。如果没有,请使用URL参数。在URL中使用lang对于复制URL很重要。但是当脚本识别URL中的lang param时,它应该首先将此param写入会话。
您需要在onChange函数中通过Ajax调用PHP函数。这个PHP函数改变了Session语言。然后重新加载URL。只需交换lang param。
正如我之前所写,当存在会话条目时,URL参数被忽略。
希望这会有所帮助。
答案 1 :(得分:0)
您在更改下拉框时设置了javascript的功能
function gotoUrl()
{
var language = document.getElementById('dropDown').value;
window.location="mywebsite.es/index.php?lang="+language;
}