0

i have script that works as follows: there is main page with 'start' button that initializes javascript function which loads a php page into a div frame, then via setTimeout it calls a 'refresh' function thats supposed to work indefinitelly and refresh the page inside frame

the refreesh timer is in database and is forwarded to java like this: var min_refresh_time = ; $min_refresh_time_sec is taken from database earlier in the code

what i wanted to modify is so the refresh min_refresh_time would be taken each time a refresh function is run, to my surprise this worked (or at least i thought so): var min_refresh_time = ; (custom sql functions are defined in separate php file included in main.php which is my main page)

unfortunatelly it seems that it 'worked' only due to some strange caching on java part and my pseudo-php code to take value from database is just a hoax - it looks like it is run only initially and then stores output somehow

simplified code of what is done and what i want to do:

function refresh_code(){
    refresh_time = <?php Print(sql_result(sql_execute("SELECT value FROM settings WHERE setting='min_refresh_time'", $connection), 0, 0)); ?>;
    refresh_time = 5; 
    alert(refresh_time);
    $.post("index.php",{refresh_time:refresh_time_post, account_group: "1"},
    function(data)
    {           
        $.ajaxSetup ({
        cache: false,
        });
        $("#frame_1").html(data);
    });
    setTimeout(function(){refresh_code()}, refresh_time);}

lets say min_refresh_time is 1 in database, i run it, it alerts 1 then 5 each time it self-refreshes, now if i go to database and change 1 to 3 i would want it to alert 3 then 5 obvious, it still does 1 then 5 tho...

i need a way to execute a dummy php file that only takes value from database, then sends it via post back to java and it gets intercepted there, any simple way to do that? or do i need to use entirely different method for retrieving database value without js...

thx in advance

update: i actually came back to it and analyzed potential solutions with fresh mind

first of all, i dont think my initial code had chance to work, java cant execute serverside code by itself, i took some of my aax code from other script and reworked it to launch php file that grabs the value from database, then i intercept output data and put into variable

looks like that:

    $.ajax({
        method: "POST",
        url: "retrieve_refresh.php",    
        data: { retrieve_data: "max"},
        cache: false,
        timeout: 5000,
        async: false,
        cache: false,
        error: function(){
            return true;
        },
        success: function(msg){ 
            if (parseFloat(msg)){
                return false;
            } 
            else {
                return true;
            }
        }
    }).done(function(php_output2) {
        max_refresh_time = php_output2;
    });

retrieve_refresh.php returns only the variable i want but the solution is unelegant to say the least, i havent searched yet but could use a way of sending variables as post back to ajax...

etix
  • 1
  • 2
  • you should try turning off your browser cache, it'll probably fix this, and once you confirmed that this is the issue we can start working on a solution. You can disable the cache just for testing by using the instructions here: http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development – markasoftware Nov 24 '15 at 01:53
  • dont think that would help, updated main post, probably its semi-solved now but haent searched for the more 'elegant' solution yet – etix Nov 25 '15 at 17:57

0 Answers0