php中的URL更改问题

时间:2013-12-06 12:23:28

标签: php

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。 此外,如果语言在会话中途改变,是否有办法更改页面的语言,以便网页上的现有内容保持不变,并且不会返回主页。

由于

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;
               }