kostenloser Webspace werbefrei: lima-city


Ajax Programmierstiloptimierung

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    kogsz

    kogsz hat kostenlosen Webspace.

    Hallo,
    ich habe ein Registrierungsskript geschrieben, das die Inputfelder bei Eingabe per Ajax überprüft (zB wie gleich hier kommt, ob die beiden Kennwörter identisch sind)
    (Teil-)Skript:
    function pw_identisch(pw1, pw2)
    {
    if (pw1 == "" || pw2 == "")
        {
            document.getElementById("ausgabe_passwort2").innerHTML="<?php echo "<img src=kreuz.jpg />"; ?>";
            return;
        }
            if (window.XMLHttpRequest)
        {
            // AJAX nutzen mit IE7+, Chrome, Firefox, Safari, Opera
            xmlhttp=new XMLHttpRequest();
        }
        else
        {
            // AJAX mit IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                document.getElementById("ausgabe_passwort2").innerHTML=xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","auswertung_ajax.php?pw1="+pw1+"&pw2="+pw2,true);
        xmlhttp.send();
    
    }

    mit dem HTML-Formular:
    <tr><td>Passwort</td>
    <td><input type="password" name="passwort" size="30" value="" id="passwort" onkeyup="testekennwortqualitaet(this.value)" onchange="testekennwortqualitaet(this.value)" />
        <span id="ausgabe_passwort"></span>
        <span id="info"></span></td>
    </tr>
    <tr><td>Passwort wiederholen</td>
    <td><input type="password" name="passwort2" size="30" id="passwort2" onkeyup="pw_identisch(document.register.passwort.value, this.value)" onchange="pw_identisch(document.register.passwort.value, this.value)" />
        <span id="ausgabe_passwort2"></span></td>
    </tr>


    wie ihr hier seht, wird immer das Skript auswertung_ajax.php aufgerufen, was dann folgendes macht:
    if(isset($pw1) AND isset($pw2))
    {
        if($pw1 == $pw2)
        {
            echo "<img src=haken.jpg alt= title= />";
            $ok_pw2 = true;
        }
        else
        {
            echo "<img src=kreuz.jpg alt= title= />";
        }
    }


    Ich suche jetzt nach einer Möglichkeit, das alles irgendwie ein eine Datei zu "verlagern". Leider bin ich nicht sehr erfahren in Ajax und brauche daher Hilfe. :(
    PS: Verbesserungen/Vereinfachungen am Quellcode sind natürlich auch gern gesehen :)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Die .php Datei muss eigenständig sein, da kommst du nicht drum rum.
    Aber zu den gewünschten verbesserungen, wieso machst du im JS in der 5. Zeile PHP Code rein? Das geht auch mit reinem JS.
  4. c143 schrieb:
    wieso machst du im JS in der 5. Zeile PHP Code rein? Das geht auch mit reinem JS.


    Resp. wenn diese Zeile so im "ausgelieferten" HTML steht, wird wohl nicht viel schlaues passieren wenn man beide Passwörter leer lässt, da zu diesem Zeitpunkt dann gar kein PHP mehr ausgeführt werden kann in der HTML-Datei.

    Grundsätzlich kommst du wirklich nicht darum herum, die Dateien getrennt zu halten. Da du aber alle Eingaben so oder so bei der anschliessenden Verarbeitung in PHP (z.B. speichern des Passwortes) nochmals überprüfen musst, könntest du die Prüfung ob die Passwörter identisch sind auch direkt in Javascript machen, ohne dies via Ajax von PHP zu erledigen, denn ich sehe keinen Vorteil dies via Ajax->PHP zu erledigen (es hat sogar Nachteile: Belastung des Servers, längere Bearbeitungszeit da dies via Netz gesendet werden muss).
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!