保持GET值保存

时间:2012-09-04 15:41:20

标签: javascript location-href

我的功能如下:

 function SetPageShow (obj)
    {
        window.location.href="?CMD=PAGEROWS&PARA="+obj.options[obj.selectedIndex].text;
    }

它工作正常,直到我有一个页面与另一个GET值如

http://protectneu/main.php?site=mitarb&liz=260

。然后当我调用函数SetPageShow时,URL将是

http://protectneu/main.php?CMD=PAGEROWS&PARA=25

和其他值(mitarb和liz)迷路了。有没有办法保存它们,只需添加新的参数。我需要的结果是:

http://protectneu/main.php?site=mitarb&liz=260&CMD=PAGEROWS&PARA=25

3 个答案:

答案 0 :(得分:2)

if (window.location.search)  
  return window.location.href + "&CMD=PAGEROWS&PARA="+obj.options[obj.selectedIndex].text;  
else 
  return window.location.href + "?CMD=PAGEROWS&PARA="+obj.options[obj.selectedIndex].text;  

答案 1 :(得分:1)

如果您想保留此类信息,请考虑使用PHP的sessions

<?php
session_start();
$_SESSION['foo'] = $bar;
?>

然后,您可以通过在页面开头调用session_start()来参考其他页面上的此信息。

<?php
session_start();
$bar = $_SESSION['foo'];
?>

答案 2 :(得分:1)

在PHP方面,您需要删除通过JavaScript发送的参数,然后使用其他参数构建一个字符串,如下所示:

<?php
$params = $_GET;
unset($params['CMD']);
unset($params['PARA']);

?>
<script>
function SetPageShow(obj)
{
    var params = '<?php echo http_build_query($params); ?>';

    window.location.href = '?' + (params ? params + '&' : '') + "CMD=PAGEROWS&PARA=" + encodeURIComponent(obj.options[obj.selectedIndex].text);
}

顺便说一句,我还在JavaScript中添加了encodeURIComponent()来执行正确的转义所选值。