Hallo! Ich möchte innerhalb meiner Javascript-Validierung eines Sign-up-Formulars „in Echtzeit“ prüfen, ob ein Benutzername bzw. eine E-Mail-Adresse bereits in der Datenbank existiert.
Prinzipiell geht das ja über den fetch-Befehl, doch das Problem ist, dass sich die Resultate meiner Datenbank-Zugriffe in den Controller-Klassen meines MVC-Frameworks befinden. Das JS-Skript kommt jedoch nicht an diese heran. Ich habe z.B. folgenden Code im SignUp-Controller, ...
$username = SignUpModel::read( [ 'username' => $_GET[ 'username' ] ] );
header( 'Content-Type: application/json' );
echo json_encode( [ 'username' => $username ] );
... der mir true oder false ausgibt, je nachdem ob der Benutzer bereits in der Datenbank existiert.
Vom Grundgedanken würde dann der fetch-Befehl ungefähr so aussehen:
return fetch( 'SignUpController.php?username='
+ encodeURIComponent( inputValue ) )
.then( function( response ) {
return response.json();
})
.then( function( json ) {
return json.username;
});
Ich möchte eigentlich keine extra PHP-Dateien innerhalb des public-Ordners, in dem sich auch die JS-Dateien befinden. Kann ich das Ganze irgendwie umgehen?
Viele Grüße
Boris