Post To Php Using Ajax And Refresh Upon Change
Solution 1:
Good question. You can do if(xmlhttp.responseText !== "<?php echo $currentValue; ?>") {
to check if the PHP-side value has changed. This watchdog
method is called very 5 seconds through setInterval
. If there is a change, then the page is refreshed via document.location.reload(true)
(ref) to prevent reusing the cache.
functionwatchdog() {
var xmlhttp;
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=newXMLHttpRequest();
} else {
// code for IE6, IE5 - whatever, it doesn't hurt
xmlhttp=newActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
// This is how you can discover a server-side changeif(xmlhttp.responseText !== "<?php echo $currentValue; ?>") {
document.location.reload(true); // Don't reuse cache
}
}
};
xmlhttp.open("POST","page.php",true);
xmlhttp.send();
}
// Call watchdog() every 5 secondssetInterval(function(){ watchdog(); }, 5000);
Note: I chose setInterval
over setTimeout
because if the connection to the server fails (500-error, timeout, etc.), then the response logic may otherwise fail to trigger another setTimeout
. setInterval
ensures the server is polled consistently regardless of connection failures.
Solution 2:
Your AJAX can be executed every 5 seconds using the setInterval() function. And you can call to refresh the page from AJAX request completion callback.
Solution 3:
Please try below code. I have used javascript setInterval function which will make ajax call every 5 seconds. Now please make efforts to make changes in code as per your requirements and take it further.
<scripttype="text/javascript" >var predefined_val = 'test';// your predefined value.
$.document(ready(function(){
setInterval(function(){
$.ajax({
type:"POST",
url:"test/test_script.php", //put relative url here, script which will return phpdata:{}, // if any you would like to post any datasuccess:function(response){
var data = response; // response data from your php scriptif(predefined_val !== data){
// action you want to perform on value changes.
}
}
});
},5000);// function will run every 5 seconds
}));
</script>
Post a Comment for "Post To Php Using Ajax And Refresh Upon Change"