tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
365
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    garnixwisser garnixwisser ist offline Mitglied
    Registriert seit
    Jun 2006
    Beiträge
    18
    Hallo Leute,

    nach dem ich dachte das meine Ajax-Anforderung für mein neues Registrierungsformular musste ich feststellen das es doch ein Problem hat. Ich hab es auch schon mal in ein Ajax-Forum eingestellt doch dort sind wohl nicht sehr viele Member dewegen versuche ich es nochmal bei euch denn hier wurde mir ja schon gut geholfen. Also..
    Ich baue an einer Registrierungsmaske die bei der Eingabe des Users die Angaben prüft. Wenn die Maske das erste Mal gefüllt wird läuft die Prüfung auch sauber durch nur wenn der User dann hingeht und ein Feld ändert wird zwar noch der httpRequest abgesetzt aber die Auswertungsfunktion wird nicht mehr gestartet.
    Hier der Code der drei Funktionen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    
                      <script language="JavaScript"> 
                            var g_id_flag = 0; 
                            var g_uid = ""; 
                            var g_xml_http = false; 
     
                            function init_xml() 
                            { 
                               if (typeof(XMLHttpRequest) != 'undefined') 
                               { 
                                               g_xml_http = new XMLHttpRequest(); 
                                } 
                                    if (!g_xml_http) 
                                    { 
                                            try 
                                            { 
                                                    g_xml_http  = new ActiveXObject("Msxml2.XMLHTTP"); 
                                            } 
                                            catch(e) 
                                            { 
                                                            try 
                                                    { 
                                                                g_xml_http  = new ActiveXObject("Microsoft.XMLHTTP"); 
                                                            } 
                                                    catch(e) 
                                                    { 
                                                                g_xml_http  = false; 
                                                            } 
                                            } 
                                    }//if 
                            } 
                            function check_db() 
                            { 
                                    if(g_xml_http) 
                                    { 
                                            g_xml_http.onreadystatechange = db_ergebnis;                                        
                                            g_xml_http.open('GET', 'test.php?g_uid=' g_uid, true); 
                                            g_xml_http.send(null); 
                                            alert("333333"); 
                                    } 
                                    else 
                                    { 
                                            alert("XML-Request konnte nicht erstellt werden !"); 
                                    } 
                            }//function 
     
                            function db_ergebnis() 
                            { 
                                    alert(g_xml_http.readyState); 
                                    if(g_xml_http.readyState == 4) 
                                    { 
                                    alert(g_xml_http.status); 
                                    if (g_xml_http.status == 200) 
                                    { 
                                    if(g_xml_http.responseText == "1") 
                                    { 
                                      alert('1'); 
                                      g_id_flag = 1; 
                                    } 
                                    else 
                                    { 
                                      g_id_flag = 0; 
                                    } 
     
                                } 
                                else 
                                { 
                                    alert('Bei dem Request ist ein Problem aufgetreten.'); 
                                } 
                                    } 
                            }
    Ich hoffe einer von euch hat eine Idee wo ich mal wieder was komplett falsch gemacht habe
    Die "alerts" benutze ich zum prüfen von daher weiß ich das er beim zweiten mal nicht mehr in die Funktion "db_ergebnis()" kommt.
    Vielleicht noch ne kleine Zusatzerklärung. Die FUnktion "init_xml()" wird vom BodyTag der Seite aufgerufen so das dann ja "g_xml_http" schon initialisiert ist und bleibt. Die Hauptfunktion "check_db()" wird jedes mal bei einer Änderung im Feld aufgerufen nur die Auswertung halt nicht mehr
     

  2. #2
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    versuche mal, das Requestobjekt nicht im onload-Event des Bodys zu initialisieren, sondern
    jedes mal, wenn Du es benötigst.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    function check_db(){
      if(g_xml_http){
        g_xml_http = null;
      }
      init_xml();
     
      if(g_xml_http){
                    g_xml_http.onreadystatechange = db_ergebnis;
                    g_xml_http.open('GET', 'test.php?g_uid=' [B][COLOR="Red"]+[/COLOR][/B] g_uid, true);
                    g_xml_http.send(null);
      } else {
        alert("XML-Request konnte nicht erstellt werden !");
      }
    }  //function
    Weiterhin hat in der Funktion ein Plus gefehlt - siehe Markierung.

    Vielleicht hilft Dir das weiter.

    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  3. #3
    garnixwisser garnixwisser ist offline Mitglied
    Registriert seit
    Jun 2006
    Beiträge
    18
    @Quaese: Danke für deine Antwort.
    Warum das "+" verschwunden ist weiß ich nicht im orgnial war es drin. Ich hab jetzt mal ne kleine Änderung am Quelltext gemacht und die Initialisierung in die "Sende" funktion gepackt und mit Firefox läuft es. Nur der IE muckt noch rum
    Code :
    1
    2
    3
    4
    5
    
                            function check_db()
                            {
                                    init_xml();
                                    .
                                    ..
     

  4. #4
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Im Internet-Explorer kann es notwendig sein, den Request am Ende explicit zu beenden:
    Code :
    1
    
    g_xml_http.abort();
     

Ähnliche Themen

  1. [IE] XMLHttpRequest funktioniert nicht
    Von rambo im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 27.04.10, 14:50
  2. XMLHttpRequest und IE8 unter XP SP3
    Von uwe75-1 im Forum Javascript & Ajax
    Antworten: 11
    Letzter Beitrag: 21.06.09, 18:38
  3. XMLHttpRequest Problem
    Von port29 im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 11.11.06, 13:26
  4. XMLHttpRequest+AJAX
    Von thespecialx im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 11.01.06, 02:09
  5. XMLHttpRequest - Problem
    Von john5 im Forum Javascript & Ajax
    Antworten: 7
    Letzter Beitrag: 03.06.05, 14:56