Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: readyState == 1
Forum PHP.pl > Forum > XML, AJAX > AJAX
szczypior
Cześć

Mam problem z uzyskaniem statusu 4 w poniższym kodzie. Męczę się już tym kilka dni i za Chiny Ludowe nie wiem gdzie jest błąd.

  1. <div class="view_rates">
  2. <a href="java script:void(null);" onClick="process('.$dane["id"].')">Zobacz<br />oceny</a>
  3. </div>
  4. <div id="rates'.$dane['id'].'"></div>


  1. header('Expires: Wed, 23 Dec 2980 00:30:00GMT');
  2. header('Last-Modified: '.gmdata('D, d M Y H:i:s').' GMT');
  3. header('Cache-Control: no-cache, must-revalidate');
  4. header('Pragma: no-cache');
  5.  
  6. echo "wynik: ".$_GET['rater_id'];


Kod
var xmlHttp = createXmlHttpRequestObject();
var serverAddress = './cc/get_rates.php';
var updateInterval = 5;
var errorRetryInterval = 30;
var debugMode = true;

function createXmlHttpRequestObject()
{
    var xmlHttp;
    try
    {
        xmlHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        var XMLHttpVersions = new Array("MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP");
        for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
        {
            try
            {
                xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
            }
            catch(e) {}
        }
    }
    if (!xmlHttp)
    {
        alert("Błąd poczas tworzenia obiektu XMLHttpRequest.");
    }
    else
    {
        return xmlHttp;
    }
}
function process(rater_id)
{
    
    if(xmlHttp)
    {
        try
        {
            
            xmlHttp.open("GET",serverAddress + "?rater_id=" + rater_id, true);
            xmlHttp.onreadystatuschange = handleGettingData(rater_id);
            xmlHttp.send(null);
        }
        catch(e)
        {
            alert("Nie można nawiązać połączenia z serwerem:\n" + e.toString());
        }
    }
}
function handleGettingData(rater_id)
{
    if (xmlHttp.readyState == 4)
    {
        if (xmlHttp.status == 200)
        {
            try
            {
                getData(rater_id);
            }
            catch(e)
            {
                alert("Błąd podczas pobierania danych:\n" + e.toString());
            }
        }
        else
        {
            alert("Błąd podczas sprawdzania dostępności serwera:\n" + xmlHttp.statusText);
        }
    }
}
function getData(rater_id)
{
    var response = xmlHttp.responseText;
    if (response.length == 0)
    {
        throw(response.length == 0 ? "Serwer error" : response);
    }
    
    myDiv = document.getElementById("raters"+ rater_id);
    myDiv.innerHTML += "dane" +response + "/dane";
    requestsCounter++;
    setTimeout("process();",updateInterval * 1000);
}


Z góry dziękuję za pomoc i ewentualne wskazówki smile.gif

Pozdrawiam
Andrzej
fleshgrinder
  1. <a href="java script:void(null);" onClick="process('.$dane["id"].')">Zobacz<br />oceny</a>


w tym -> process('.$dane["id"].') ma byc wypisana jakas zmienna php? nie powinno byc raczej process('<?php echo $dane['id'] ?>') ?

to najwazniejsze, ale tak poza tym:
<a href="java script (itd..) -> oj.. konstrukcja-koszmarek, nie zadziala. jesli chcesz, zeby przegladarka po wywolaniu zdarzenia nie podazyla za linkiem, dodaj w kodzie js, ze funkcja process ma zwracac false, a w href podstaw raczej alternatywny link, jesli uzytkownik ma wylaczona obsluge js.
ten onclick w html to smiecenie w kodzie, polecam artykul pornela na ten temat smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.