0

My problem is the following: I have a real simple PHP file called "writeSettings2.php" that has:

<?php 
    $text=$_GET["text"];
     setcookie("MG_FileTree_Opener_SelPath", $text);
?>

And then I have my PHP page, in which I have a JavaScript function called "makeChanges", this function is called in a input type submit function and gets the combobox selected value and calls through xmlhttp the PHP function above like so:

<input type="submit" id="choice" value="Escolher" name="Esc" onClick="makeChanges()">

And the function "makeChanges" is like:

function makeChanges(  )
{
    var selObj = document.getElementById('opiniao');    
    var selIndex = selObj.selectedIndex;
    var str = selObj.options[selIndex].text;

    if (window.XMLHttpRequest)

    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();

    }
    else
    {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
   xmlhttp.open("GET","writeSettings2.php?text="+str,true);
   xmlhttp.send(null);
   history.go(0);
}

Basically what I'm doing is use the JavaScript on the client fo call PHP function to rewrite the client cookie, and then refresh the page to get PHP to rewrite the page with the new info on the cookie.

This code works fine, but only for the fist 2 times! For instance my combox has item 1 and 2. I load it and is item 1. Change to item 2. Change back to item 1. Change to item 2 again ---- FAILS never changes again, it always remains on 1.

Any suggestions?

1 Answer 1

1

Your browser is caching the ajax response. You need to add a random value to the ajax request, or put the no-cache header in the called page. You can change the javascript like so to fix it:

var str = selObj.options[selIndex].text+'&random='+(new Date()).getTime();

And/Or use the following php header:

header("Cache-control: no-cache");
Sign up to request clarification or add additional context in comments.

1 Comment

Great, it works, i've added the two advices you gave me. But i think only the first is needed! Thanks a lot! I'm going to mark your awser as correct!! Thanks

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.