borisbaer: In MVC-Umgebung bei JS-Validierung auf Datenbank zugreifen

Beitrag lesen

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