Jump to content

AJAX not auto updating


stuffradio

Recommended Posts

When I do something in the database like add or remove a row... it doesn't auto update.

 

Any ideas?

 

<script type="text/javascript">
function createRequestObject() {
    
        var req;
    
        if(window.XMLHttpRequest){
            // Firefox, Safari, Opera...
            req = new XMLHttpRequest();
        } else if(window.ActiveXObject) {
            // Internet Explorer 5+
            req = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            // There is an error creating the object,
            // just as an old browser is being used.
            alert('There was a problem creating the XMLHttpRequest object');
        }
    
        return req;
    
    }
    
    // Make the XMLHttpRequest object
    var http = createRequestObject();
    
    function sendRequest(act) {
        
        // Open PHP script for requests
        http.open('get', 'index.php?act='+act);
        http.onreadystatechange = handleResponse;
        http.send(null);
    
    }
    
    function handleResponse() {
    
        if(http.readyState == 4){
    
            // Text returned FROM PHP script
            var response = http.responseText;
    
            if(response) {
                // UPDATE ajaxTest content
                document.getElementById("countPosts").innerHTML = response;
                setTimeout(countPosts,20);
            }

</script>

<?php
require_once('config.php');

if ($_GET['act'] == "countPosts") {

    $sql = mysql_query("SELECT * FROM `activate`");
echo "<div id='countPosts'>";
    while($count = mysql_fetch_array($sql)) {

        echo "<b>".$count['id']."</b> - ".$count['code']."<br /><br />";

    }
echo "</div>";    
} 

Link to comment
https://forums.phpfreaks.com/topic/77363-ajax-not-auto-updating/
Share on other sites

try this:

 

<script type="text/javascript">
function createRequestObject() {
    
        var req;
    
        if(window.XMLHttpRequest){
            // Firefox, Safari, Opera...
            req = new XMLHttpRequest();
        } else if(window.ActiveXObject) {
            // Internet Explorer 5+
            req = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            // There is an error creating the object,
            // just as an old browser is being used.
            alert('There was a problem creating the XMLHttpRequest object');
        }
    
        return req;
    
    }
    
    // Make the XMLHttpRequest object
    var http = createRequestObject();
    
    function sendRequest(act) {
        
        // Open PHP script for requests
        http.open('get', 'index.php?act='+act);
        http.onreadystatechange = handleResponse;
        http.send(null);
        setTimeout("sendRequest(act)", 60000);
    
    }
    
    function handleResponse() {
    
        if(http.readyState == 4){
    
            // Text returned FROM PHP script
            var response = http.responseText;
    
            if(response) {
                // UPDATE ajaxTest content
                document.getElementById("countPosts").innerHTML = response;
                setTimeout(countPosts,20);
            }

</script>

<?php
require_once('config.php');

if ($_GET['act'] == "countPosts") {

    $sql = mysql_query("SELECT * FROM `activate`");
echo "<div id='countPosts'>";
    while($count = mysql_fetch_array($sql)) {

        echo "<b>".$count['id']."</b> - ".$count['code']."<br /><br />";

    }
echo "</div>";    
} 

 

or you could try this:

 

- create a php variable in your main page to check for mysql_num_rows

- then add another javascript variable to you http.open like:

<?php

// connect to db
// select table
$results = // query database
// while statement - begin

$addeletestatus = mysql_num_rows($result);

// while statement - end

?>

    function sendRequest(?act,act2) {
        
        // Open PHP script for requests
        http.open('get', 'checker.php?act='+act+'&act2=<?php echo "$addeletestatus"; ?>');
        http.onreadystatechange = handleResponse;
        http.send(null);
        setTimeout("sendRequest()", 60000);
}
    window.onload=function() {
        sendRequest();
    }

 

- Then on your checker.php page do something like this:

<?php

$act = $_GET['act'];
$act2 = $_GET['act2'];

// connect to db
// select table
$results = // query database
// while statement - begin

$addeletestatus2 = mysql_num_rows($result);

// while statement - end

if ($act2 == $addeletestatus2)
{
// Database Has Not Been Updated
exit;
}
else {
header("Location: index.php?act=$act");
}

?>

 

I do not guarantee that any of this will work, but it may give an idea of where to start from.

be sure to remove that question mark in that pro-type script that I created for your at the bottom of the page; I put that in there by mistake.

 

where it say:

 

function sendRequest(?act,act2)

 

it should really say:

 

function sendRequest(act,act2)

 

sorry about that, I just realized what I did..........

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.