Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 02-12-2006, 19:07
Godfrey
 Junior Member
Links : Onlinestatus : Godfrey ist offline
Registriert seit: Jan 2005
Beiträge: 126
Godfrey ist zur Zeit noch ein unbeschriebenes Blatt
Standard 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.
Mit Zitat antworten