php中的URL更改问题


URL change issue in php

1。我有一个网站,在页面的顶部,有一个下拉列表,用户可以指定英语和西班牙语作为一种语言。

如果该语言是网页上的第一个选择,并且URL更改为mywebsite.es/index.php,则此操作正常?lang=es如果是西班牙语。。正如它应该做的那样。

但是,如果我使用自由文本输入或任何其他下拉框在页面下方执行搜索,则URL的语言部分将无法识别。

因此,搜索结果不是以结尾

mywebsite.es/index.php?lang=es/search.php?location=&type1=&price1=&条件=&category=&q=鞋子我明白mywebsite.es/search.php?location=&type1=&price1=&条件=&category=&q=鞋

以下是我目前掌握的脚本片段:

<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。此外,如果在会话进行到一半时更改了语言,是否有方法更改页面的语言,以便保留网页上的现有内容,而不会返回主页。

感谢

好吧,我没有完全理解你的第一个问题。

您应该将语言保存在会话中保存在URL中。如果存在会话,则使用其lang参数。如果没有,请使用URL参数。在URL中包含lang对于复制URL非常重要。但是,当您的脚本识别出URL中的lang参数时,它应该首先将此参数写入会话。

您需要在onChange函数中通过Ajax调用PHP函数。此PHP函数更改会话语言。然后重新加载URL。只需交换lang参数即可。

正如我之前所写的,当存在会话条目时,URL参数将被忽略。

希望这能有所帮助。

您在更改下拉框时设置javascript的功能

      function gotoUrl()
                 {
                    var language = document.getElementById('dropDown').value;
                    window.location="mywebsite.es/index.php?lang="+language;
               }