Question

I have function like this:

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

and it works fine until I have a page with another GET-values like

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

. then when I call the function SetPageShow, the URL will be

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

and the other values(mitarb and liz) are getting lost. Is there a way to keep them saved and just add the new paramethers. The result that I need is:

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

Solution

On the PHP side you need to strip out the parameters that you would send via JavaScript, then build a string with the other parameters, like so:

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

Btw, I've also added encodeURIComponent() in JavaScript to perform proper escaping of the selected value.

OTHER TIPS

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;  

Consider using PHP's sessions if you want to retain information like this.

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

Then you can refer to this information on other pages by calling session_start() at the beginning of the page.

<?php
session_start();
$bar = $_SESSION['foo'];
?>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top