shuriko: AJAX: Ändern der Textfarbe im Formular.

Hallo,

ich möchte in meinem Beispiel - http://www.shuriko.com/tmp/ajax/ (Zip-Datei: http://www.shuriko.com/tmp/ajax/beispiel_ajax.zip) - die Farbe vom "User" und "Password" ins Rot ändern, wenn einer der Angaben falsch ist. Im Beispiel überprüfe ich nur den Benutzername, weil es nur ein Beispiel ist. Der richtige Benutzername wäre "Felix" und der Text muss in der Farbe unverändert bleiben, wenn der "Felix" sich einloggt.

Bei der Abfrage zeige ich zu Debug-Zwecken die Variablen in einem Alert-Fenster. Wenn die Variable "response" den Wert von 1 annehmen würde, so müsste der Text rot werden. Nun habe ich irgendwo Fehler und komme nicht weiter. Wäre es möglich, dass jemand von Euch mit einem geschulten Auge drüber gucken würde und mir vielleicht ein paar Tipps geben könnte.

Vielen Dank.

  1. Moin!

    Bei der Abfrage zeige ich zu Debug-Zwecken die Variablen in einem Alert-Fenster. Wenn die Variable "response" den Wert von 1 annehmen würde, so müsste der Text rot werden.

    Wie wäre es mit einem schlanken und nahe liegenden:

    if (1==response) {  
      document.getElementById('user').style.color='red';  
      document.getElementById('pass').style.color='red';  
    }  
      
    
    

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix

    1. Hallo fastix,

      Wie wäre es mit einem schlanken und nahe liegenden:

      if (1==response) {

      document.getElementById('user').style.color='red';
        document.getElementById('pass').style.color='red';
      }

        
        
      Es ist elegant, aber Problem bei meinem Code ist, dass meine Abfrage bei "getElementsByTagName(...)" kein Ergebnis hat.  
      
      
      1. Es ist elegant, aber Problem bei meinem Code ist, dass meine Abfrage bei "getElementsByTagName(...)" kein Ergebnis hat.

        Dann machst du etwas falsch.

        Struppi.

        1. Dann machst du etwas falsch.

          Tja, aber was? Das ist mein Problem. Es kommt "null".

          1. Dann machst du etwas falsch.

            Tja, aber was? Das ist mein Problem. Es kommt "null".

            Tja, das Wissen wir nicht, da du uns nicht sagst was du machst.

            Das "null kommt", kann nicht sein!
            getElementsByTagName gibt niemals null zurück.

            Struppi.

            1. Hallo,

              Tja, das Wissen wir nicht, da du uns nicht sagst was du machst.

              Alles steht im Quellcode (Link ist auch im Text zu finden) und müsste selbsterklärend sein.

              Das "null kommt", kann nicht sein!
              getElementsByTagName gibt niemals null zurück.

              response.getElementsByTagName("method") gibt "null" zurück.

              1. Hi,

                Das "null kommt", kann nicht sein!
                getElementsByTagName gibt niemals null zurück.

                response.getElementsByTagName("method") gibt "null" zurück.

                Und wie sieht die komplette response aus? Enthält die denn überhaupt ein "method"-Element?

                Abgesehen davon: schon Dein HTML ist kaputt:
                <span id="ctn1" class="blueLogin">User: </span><input id="ctn1"

                Hier wird für mehrere Elemente dieselbe ID benutzt.
                Das kann nicht sein.

                cu,
                Andreas

                --
                Warum nennt sich Andreas hier MudGuard?
                O o ostern ...
                Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
                1. Und wie sieht die komplette response aus? Enthält die denn überhaupt ein "method"-Element?

                  Wie kann ich die komplette Response abfragen? Kann man die als String ausgeben?

                  Abgesehen davon: schon Dein HTML ist kaputt:
                  <span id="ctn1" class="blueLogin">User: </span><input id="ctn1"

                  Das ist zwar nicht korrekt aber es funktioniert, wenn ich die Werte simuliere. D.h. sowohl der Text vor dem textfeld als auch der Text im Eingabefeld wird farblich hervorgehoben. Und dadurch, dass ich noch beim Testen bin störts es funktional erstmal nicht.

                  Danke für die Hilfe.

                  1. Hi,

                    Wie kann ich die komplette Response abfragen? Kann man die als String ausgeben?

                    Nutze Debugging-Tools wie bspw. Firebug, während du entwickelst.

                    Abgesehen davon: schon Dein HTML ist kaputt:
                    <span id="ctn1" class="blueLogin">User: </span><input id="ctn1"

                    Das ist zwar nicht korrekt aber es funktioniert, wenn ich die Werte simuliere. D.h. sowohl der Text vor dem textfeld als auch der Text im Eingabefeld wird farblich hervorgehoben. Und dadurch, dass ich noch beim Testen bin störts es funktional erstmal nicht.

                    Gewöhne dir diese Einstellung bitte ab - sie ist schlichtweg idiotisch.

                    Beseitige Fehler, sobald sie dir auffallen bzw. du darauf hingewiesen wirst.
                    Überprüfe, ob dein HTML und CSS fehlerfrei sind (d.h., validiere sie), bevor du mit JavaScript darauf zu arbeiten beginnst.
                    Alles andere ist Zeitverschwendung, weil du früher oder später garantiert an den Punkt kommen wirst, wo du krampfhaft nach Fehlern in deinem JavaScript suchen wirst, obwohl diese gar nicht dort liegen.

                    MfG ChrisB

                    --
                    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
                    1. Beseitige Fehler, sobald sie dir auffallen bzw. du darauf hingewiesen wirst.

                      Also, die Fehler sind weg. Firebug spuckt mir bei "responseText" die Webseite mit meinem 404 (z.B. www.shuriko.com/404), obwohl ich XML-String erwarte...

                      1. Hi,

                        Firebug spuckt mir bei "responseText" die Webseite mit meinem 404 (z.B. www.shuriko.com/404), obwohl ich XML-String erwarte...

                        Dann korrigierst du besser mal die Adresse, an die du den Request schickst - sonst wartest du nämlich lange.

                        MfG ChrisB

                        --
                        RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
                      2. Hi,

                        Also, die Fehler sind weg. Firebug spuckt mir bei "responseText" die Webseite mit meinem 404 (z.B. www.shuriko.com/404), obwohl ich XML-String erwarte...

                        Firebug spuckt mir bei "responseText" die Webseite mit meinem 404 (z.B. www.shuriko.com/404), obwohl ich XML-String erwarte...

                        Nein, das Ding wirft nicht mal 404 not found, sondern liefert mit 200 Ok eine Seite mit der URL http://www.shuriko.com/errors/404.html aus (nachdem mit 302 found auf diese Adresse umgeleitet wird).
                        Vollkommener Blödsinn. Vermutung: bei ErrorDocument ist eine Adresse mit http: am Anfang angegeben.

                        Abgesehen davon:
                        Deine Testseite hat die URL:
                        http://www.shuriko.com/tmp/ajax/

                        Per Ajax rufst Du relativ dazu
                        ./cgi-bin/ajax/test.cgi?q=
                        auf, also

                        http://www.shuriko.com/tmp/ajax/cgi-bin/ajax/test.cgi?q=
                        Dort befindet sich Dein cgi-Script aber gar nicht. Also wäre ein 404 not found eigentlich ja zu erwarten (aber bei Dir wird mit 200 ok geantwortet ...).

                        Üblicherweise ist das cgi-bin-Verzeichnis direkt im Document-Root untergebracht, also

                        http://www.shuriko.com/cgi-bin/ajax/test.cgi?q=

                        Und siehe, da gibt es keine 200 ok mit /errors/404.html, sondern einen 500 internal server error.
                        Dort scheint sich das Script also tatsächlich zu befinden - wirft aber noch Fehler ...

                        Welchen genau entnimmst Du dann dem error.log Deines Apache.

                        cu,
                        Andreas

                        --
                        Warum nennt sich Andreas hier MudGuard?
                        O o ostern ...
                        Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
              2. Tja, das Wissen wir nicht, da du uns nicht sagst was du machst.

                Alles steht im Quellcode (Link ist auch im Text zu finden) und müsste selbsterklärend sein.

                Ist er nicht, da ich keinen Link gesehen habe. (das wäre ein Link)

                Allerdings habe ich auch keine grosse Lust, jedesmal den Code nach Änderungen zu durchsuchen, um zu sehen, ob und wo du die Vorschläge eingebaut hast. Sag doch einfach was du gemacht hast, schließlich möchtest du Hilfe.

                Das "null kommt", kann nicht sein!
                getElementsByTagName gibt niemals null zurück.

                response.getElementsByTagName("method") gibt "null" zurück.

                100% nicht! Wenn das so ist, dann ist dein Browser kaputt.

                Struppi.