Hallo liebe Community,

Ich hab mal wieder ein Problem, vielleicht mag mir ja wieder jemand helfen?

Und zwar möchte ich beim Registrierungsformular schon während der Eingabe überprüfen,
ob die Emailadresse schon vorhanden ist. Ich bin dabei auf einen Codeschnipsel gestoßen,
der per jquery eine AJAX Anfrage auslöst. Das ganze funktioniert auch wunderbar, allerdings
gelingt es mir nicht die Funktion in Contao einzubauen. Die Funktion checkEmail() möchte ja
gerne eine php Datei aufrufen, auf die sie aber klarerweise nicht zugreifen kann. Ich habs mit der
AJAX Erweiterung versucht, allerdings - muss ich zugeben - schnall ichs nicht. ^^

Das schreit förmlich nach Hook, aber wie? Mal wieder scheiterts an den Contao-Interna Kenntnissen...

Hier der Code den ich benutze:

im Template member_default.html5 steht halt so ein Eintrag:
HTML-Code:
<div class="row">
  <div class="col-xs-12">
    <!--<label for="ctrl_email" class="mandatory"><span class="invisible">Mandatory field</span> E-mail address<span class="mandatory">*</span></label>-->
    <input type="email" name="email" id="ctrl_email" onkeyup="checkEmail(this.value)" class="text mandatory form-control" value="" required="" maxlength="255" placeholder="Your E-Mail Adress">
    <span id = "email_available"></span>  
  </div>
</div>
jquery:

Code:
function checkEmail(email) {
  if(email.length < 3) {
     $('#email_available').html('');
     return false;
  }
  $.getJSON('ajax.php', { email: email, nocache : Math.random()*Math.random() }, function(data) {
      if(data) {
          $('#email_available').html('<span class="not_available">Nicht verfügbar</span>');
      } else {
          $('#email_available').html('<span class="available">Verfügbar</span>');
      }
  });     
}
checkEmail.class.php:
PHP-Code:
<?php

class emailChecker extends Frontend {
    private 
$db;
    private 
$table;
    private 
$row;
    private 
$output;
    private 
$format;
    
    
    public function 
__construct($config) {
        if(!
is_array($config)) trigger_error('NO CONFIG');
        
$isset = isset($config['DB'], $config['Table'], $config['Row']);
        if(!
$issettrigger_error('CONFIG NOT VALID');
        
        
$this->format = (isset($config['Format']) && ($config['Format'] === 'JSON')) ? 'json' 'default';
        
$this->output = (isset($config['Output']) && ($config['Output'] === true)) ? true false;
        
        
$this->db $config['DB'];
        
$this->table $config['Table'];
        
$this->row $config['Row']; 
    }
    
    
    public function 
check($email) {
        
$exist false;
        
$sql '
                SELECT
                       COUNT(*)
                FROM
                      '
tl_member'
                WHERE
                      '
email' = ?';    
        
$stmt $this->db->prepare($sql);
        
$stmt->bind_param('s'$username);
        
$stmt->execute();
        
$stmt->bind_result($exist);
        
$stmt->fetch();
        
$stmt->close();
        
$exist = (bool)$exist;
        if(
$this->format === 'json'$exist json_encode($exist);
        
        if(
$this->output === true) {
            echo 
$exist;
            return;
        }    
                
        return 
$exist;         
    }
   
}
checkEmail.php
PHP-Code:
<?php

$db 
$this->import('Database'); 
require 
'checkEmail.class.php';


$config = array('DB' => $db
                
'Table' => 'tl_member',
                
'Row' => 'email',
                
'Output' => true,
                
'Format' => 'JSON');
                
$emailChecker = new emailChecker($config);


if(isset(
$_GET['email']) && strlen($_GET['email']) > 3) {
    
$emailChecker->check($_GET['email']);
}
Freu mich über jede Antwort,
LG Androsch