Es geht darum, dass ich bei der Registrierung folgendes erreichen möchte. Bei Eingabe des Benutzernamens soll direkt beim verlassen des Feldes (onblur) der Benutzername mit den vorhandenen Benutzernamen in der Datenbank abgeglichen werden. Wenn der Name schon vorhanden ist, soll rechts daneben ein Text ausgegeben werden, dass der Name nicht mehr gewählt werden kann, wenn er noch nicht drin steht, soll die Meldung erscheinen, dass der Name gewählt werden kann. Ich habe bereits verschiedene Lösungen dafür erarbeitet, aber zufrieden bin ich nicht. Hier eine Liste, was ich erreicht habe:
- Übergabe des Benutzernamen an Javascript
Übergabe des Arrays mit vorhandenen Benutzern aus PHP an Javascript
Prüfung in Javascript, ob der Benutzer schon vorhanden ist
Ausgabe der Meldung in einem input-text feld (funktioniert, aber das Feld ist anklickbar und editierbar, das ist doof) mit document.formular.feldname.value.
Ausgabe der Meldung durch Übergabe der Werte mit einem Link, indem der Wert als bool an die URL gehängt und mit $_GET abgerufen wird (fast perfekt, aber jeder kann diesen Wert in der URL sehen)
Toll wäre etwas, wie die letzte Lösung, ohne Aufruf einer neuen Seite und unsichtbar. Jetzt habe ich gelesen, dass man die Werte einem (durchsichtigem?) 1x1 Pixel gif-Bild anhängen kann, das über ein php-Script eingebunden wird.
Realisierung sollte so aussehen:
getpixel.php
PHP-Code:
<?
echo "<img src='bilder/1x1px.gif' width='1' height='1'>";
?>
javascript-Teil
Code:
for (var i=0; i <= 5; ++i)
{
if (user.value == a[i]) //Wenn Benutzer im Array
{
var regok = false;
var user2 = a[i]
}
}
if (regok == false)
{
dummy = new Image();
dummy.src='getpixel.php?regok=' + regok + '&user2=' + user2;
//document.Fehler.vorhanden.value = "Benutzername vergeben";
return false;
}
else
{
regok = true;
dummy = new Image();
dummy.src='getpixel.php?regok=' + regok + '&user2=' + user2;
//document.Fehler.vorhanden.value = "Benutzername verfügbar";
return true;
}
return false;
PHP-Code:
<?php
$regok=$_GET["regok"];
$user2=$_GET["user2"];
echo "regok: ".$regok."und user2: ".$user2;
?>
Von dummy.src kann ich den Inhalt an input-text übergeben. dummy.sry hat den richtigen Link, der zu dem Bild führt, wenn ich ihn in die URL einfüge. Auch die Werte regok und user2 werden richtig an den Link angehängt. Aber mit $_GET bekomme ich keine Werte (wohl, weil keine in der aktuellen URL hängen). Wie also komme ich an meine Variablen in JavaScript, ohne eine neue Seite aufrufen zu müssen? Ich habe oft was davon gelesen, dass manches PHP serverseitig und Javascript clientseitig läuft. Weiß aber nicht, ob das eine Rolle spielt. Ich hab vor ein bis zwei Wochen mit PHP angefangen und fast gar keine Ahnung von Javascript. Beides ist aber C++ nicht unähnlich, was ich in der Schule mal gelernt habe. Ich versuche jetzt möglichst viel darüber zu lernen und komme aber seit zwei Tagen an dieser Stelle nicht richtig weiter.
beneblack
Edith ist noch eingefallen, dass das Bild auf der Seite nicht angezeigt wird (getestet mit einem Bild, das größer als 1x1 pixel und nicht zu übersehen ist).