Zum Inhalt springen

Registrierung mit Ajax


Empfohlene Beiträge

Juten Tach ersmal,

Habe folgendes Problem und ihr könnt mir sicher helfen:

Habe ein Loginscript mit javascript und html, welches auf eine php-Seite weiterleitet, die den vorangegangenen Eintrag in eine Datenbank schreibt.

zudem habe ich schon eine php-datei, die eine xml-datei erzeugt und die tabelle "Benutzername" auf eingegebene inhalte prüft.

Mein anliegen ist es:

ich möchte jetzt in der index(in meinem Fall die registrierung) per xmlhttprequest(AJAX) prüfen, ob der eingegebene Benutzername schon vorhanden ist. die überprüfung soll stattfinden, sobald das Feld Benutzername verlassen wird ... das geht glaube ich per OnLostFocus (aber wie?)

hoffe ich konnte meine problemstelllung einigermaßen deutlich schildern, wenn codeschnipsel benötigt werden, sagt mir welche, ich möchte jetzt nur nich alles hochladen!

Vielen Dank schon einmal im voraus.

Gruß Stefan

Link zu diesem Kommentar
Auf anderen Seiten teilen

das geht glaube ich per OnLostFocus (aber wie?)

Du musst nur LostFocus durch blur ersetzen, dannn sollte es klappen ;)

Du könntest es auch bei onchange machen, sobald der Benutzer einen Buchstaben eingibt wird geprüft ob der Name vorhanden ist. Ein Buchstabe ist aber eher sinnlos, also könntest du auch in der Funktion prüfen ob z.B. mind 3 Buchstaben eingegeben wurden o.ä. und nur dann per Ajax prüfen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

und da bin ich schon wieder ;D

folgendes, greife per onblur="Benutzer()" zu, funktioniert auch wunderbar, habe ein alert eingebaut und das wird auch ausgegeben, bekomme nun aber für zeile x eine fehlermeldung ausgegeben, folgender code:

function handleNameHttpResponse() {

if (http.readyState == 4) {
if (http.responseText.indexOf('invalid') == -1) {
var xmlDocument = http.responseXML;
var Benutzer = xmlDocument.getElementsByTagName('username');
for(var i = 0;i < Benutzer.length; i++ ) {
var Benutzer2 = xmlDocument.getElementsByTagName('username').item(i).firstChild.data;
document.getElementById('username').options[i] = new Option(Benutzer);
if (i == 0) {
document.getElementById('username').options[0].selected=true;
}
}
isWorking = false;
}
}
}

function Benutzer() {
alert("xxx");
[B][U]var url = "vorhanden.php?username=" + document.getElementById[/U][/B]('Benutzername').value;
http.open("GET", url , true);
http.onreadystatechange = handleNameHttpResponse;
http.send(null);
}

function getHTTPObject() {
var xmlhttp;
@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
@else
xmlhttp = false;
@end @*/
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
try {
xmlhttp = new XMLHttpRequest();
xmlhttp.overrideMimeType("text/xml");
} catch (e) {
xmlhttp = false;
}
}
return xmlhttp;
}
var http = getHTTPObject();
[/PHP]

was ist genau in der fettmarkierten und der unterstrichenen zeile falsch?

Link zu diesem Kommentar
Auf anderen Seiten teilen

var url = "vorhanden.php?username=" + document.getElementById

Bei Code funktionier kein BBCode ;) (Bei zitaten aber schon)

Aber ich würde mal sagen, du solltest eine absolute url angeben? Bei relativen vervollständigt das der Browser, wie das aber bei Javascript aussieht weiß ich nicht.

Ansonsten ja... was geht denn nicht? :confused:

Und wieso benutzt du kein AJAX-Framework?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ajax Framework wird in der vorhanden.php benutzt!

:confused:

AJAX = Asynchronus Javascript And Xml

Das kannst du ja in der php Seite schlecht verwenden ;)

Ich meinte auch vorallem für die Aufrufe die du ja noch von Hand machst. Ich hab das erstmal auch so gemacht, dann weiß man wenigstens was da so gemacht wird (und ich kannte damals auch noch kein Framework) aber später sollte man IMHO schon eins nutzen, das spart die ne Menge Code.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...