AJAX: Aufruf der PHP-Klasse wird nur einmal durchgeführt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • AJAX: Aufruf der PHP-Klasse wird nur einmal durchgeführt

    Hallo,

    Ich rufe mit AJAX eine PHP-Klasse auf welche mir auch Daten schickt. Der Aufruf wird über ein select gemacht:
    PHP-Code:
    <select name="kategorie" class="post" style="width:300px" 
            
    onchange="loadOptions('../includes/ajax_serv.php?
            load=' + this.value + '&amp;
            lang=german&amp;phpExt=php', 'subkat', 'artikelnummer')"
    >
        <
    option value="1" selected="selected">Spiele</option>
        <
    option value="2">Hardware</option>
        <
    option value="3">Software</option>
        <
    option value="4">Bücher</option>
    </
    select
    Dabei wird für jeden Aufruf der Optionen je einmal die Klasse aufgerufen. Danach werden scheinbar immer nur die schon gesendeten Daten wieder angezeigt. Das ist aber ein Problem, da beim Wechsel der Optionen auch jedes Mal ein Datenbankzugriff erfolgen muss, der mir eine Nummer ermittelt welche sich in der Zwischenzeit geändert haben kann.

    Der JS-Code ist:
    PHP-Code:
    function loadOptions(urlidid2) {
        if (
    window.XMLHttpRequest) {
            var 
    xmlHttp = new XMLHttpRequest();
        }
        else if (
    window.ActiveXObject) {
            var 
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        
    xmlHttp.open("GET"urltrue);

        
    xmlHttp.onreadystatechange = function () {
            if (
    xmlHttp.readyState == 4) {
                if (
    xmlHttp.status == 200) {
                    
    _clearTopicList(id);
                    
    _xmlFileLoaded(xmlHttp.respon************MLidid2);
                }
                else {
                    
    alert ("Fehler bei der Kommunikation mit dem Server:\n" xmlHttp.statusText);
                }
            }
        };
        
    window.setTimeout(function () {xmlHttp.send(null);}, 10);

    Meine Frage ist nun: Wie kann ich es erzwingen, dass jedesmal neu die Klasse aufgerufen wird, also immer die aktuellen Daten geschickt werden.

  • #2
    Re: AJAX: Aufruf der PHP-Klasse wird nur einmal durchgeführt

    Original geschrieben von Godfrey
    Danach werden scheinbar immer nur die schon gesendeten Daten wieder angezeigt.
    Mit welchem Browser hast du das getestet?

    Der IE macht Probleme bei AJAX-Abfragen per GET, da holt er des öfteren die Ressource aus dem Cache, auch wenn er nicht sollte. POST statt GET kann in solchen Fällen Abhilfe schaffen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Mhh, ja, ist IE6.0 und stimmt, der holt ja aus dem Cache...

      Also mal mit POST versuchen.

      Danke

      Kommentar


      • #4
        PHP-Code:
        xmlHttp.open("POST"urltrue); 
        hat das Problem behoben.

        Danke, liesen sich nur alle Probleme immer so schnell beheben.

        Kommentar


        • #5
          xmlHttp.open("GET", url+"?zufal="+encodeURIComponent(Math.random()), true);

          dann macht auch IE mit, da url jedes mal anderes ist
          Slava
          bituniverse.com

          Kommentar

          Lädt...
          X