Ergebnis 1 bis 8 von 8

Thema: Java Script in member_default.html5 einbinden

  1. #1
    Contao-Nutzer
    Registriert seit
    17.02.2013.
    Beiträge
    4

    HTML Java Script in member_default.html5 einbinden

    Hallo Contao Entwickler

    Ich möchte auf die Tabelle in member_default.html5 mit einem JavaScript zugreifen, blicke jedoch nicht durch wo ich das Script einbinden muss.
    Ihrgendwie begreiffe ich nicht so ganz wie Contao die ganzen html5 Elemente zusammenfügt. Wo ist zB. das "root" Element mit dem Doctype und dem Head?

    Kann mir jemand helfen?

    Danke schon im Vorraus...

  2. #2
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    Herzlich willkommen

    das template für die Seite heisst fe_page

  3. #3
    Contao-Nutzer
    Registriert seit
    17.02.2013.
    Beiträge
    4

    Standard

    Super! Danke, habs gefunden

    Ich möchte, nachdem sich ein User beim User Registration Formular registriert hat, unter dem Formular ein popup Fenster auftut bei dem der User informiert wird,
    dass eine Email an ihn gesendet wurde. Es gibt ja die Möglichkeit, den User auf einer darauf folgenden Seite zu informieren, was ich jedoch nicht so toll finde.

    Nun wollte ich im fe_page ein jQuery Script einfügen das nach erfolgreicher Registrierung das popup Fenster öffnet, jedoch kann ich dort nicht auf die "id" der Tabelle zugreifen.

    Gibt es die Möglichkeit mit der Template Klasse in ModuleRegistration.php auf die Tabelle zu zugreifen und von dort aus ein scipt zu starten?
    ZB: Mit $this->Template->formId die FormId erhalten und dann ein Script mit dieser ID auszuführen

    Wie fügt ihr JavaScripts oder JQuery Scripts hinzu, die auf bestimmte ID's einer Tabelle Zugriff haben müssen?
    Geändert von yoorky (17.10.2013 um 14:46 Uhr)

  4. #4
    Contao-Fan Avatar von bekanntmacher
    Registriert seit
    13.08.2009.
    Ort
    St. Gallen, Schweiz
    Beiträge
    354
    Partner-ID
    6419

    Standard

    Und wie möchtest du ohne Request die Eingaben verlässlich prüfen?

  5. #5
    Contao-Nutzer
    Registriert seit
    17.02.2013.
    Beiträge
    4

    Standard

    Durch den Aufruf der entsprechenden php Klasse mit Hilfe von jQuery/JScript.
    Etwa so:

    $('formId').submit(function(e) {
    this.submit(); // use the native submit method of the form element
    showInfo('bla bla');
    });

  6. #6
    Contao-Fan Avatar von bekanntmacher
    Registriert seit
    13.08.2009.
    Ort
    St. Gallen, Schweiz
    Beiträge
    354
    Partner-ID
    6419

    Standard

    Damit wurden aber die Eingaben nicht geprüft. Somit kann dein showInfo-Aufruf höchstens so lauten showInfo('Sie haben auf den Submit-Button geklickt. Ob Sie das Formular korrekt ausgefüllt haben, kann ich nicht sagen....') ??

  7. #7
    Contao-Nutzer
    Registriert seit
    17.02.2013.
    Beiträge
    4

    Standard

    hmmm... dann hab ich da wohl was falsch verstanden, was "this.submit" macht...dachte der löst ein submit aus und ruft dann entsprechend die Klasse ModuleRegistration auf wo es folgende Prüfung gibt und gibt dann dem entsprechend Fehlermeldungen durch die "addError" aus:
    PHP-Code:
        // Validate input
                
    if (\Input::post('FORM_SUBMIT') == 'tl_registration')
                {
                    
    $objWidget->validate();
                    
    $varValue $objWidget->value;

                    
    // Check whether the password matches the username
                    
    if ($objWidget instanceof \FormPassword && $varValue == \Input::post('username'))
                    {
                        
    $objWidget->addError($GLOBALS['TL_LANG']['ERR']['passwordName']);
                    }

                    
    $rgxp $arrData['eval']['rgxp'];

                    
    // Convert date formats into timestamps (check the eval setting first -> #3063)
                    
    if (($rgxp == 'date' || $rgxp == 'time' || $rgxp == 'datim') && $varValue != '')
                    {
                        try
                        {
                            
    $objDate = new \Date($varValue);
                            
    $varValue $objDate->tstamp;
                        }
                        catch (\
    OutOfBoundsException $e)
                        {
                            
    $objWidget->addError(sprintf($GLOBALS['TL_LANG']['ERR']['invalidDate'], $varValue));
                        }
                    }

                    
    // Make sure that unique fields are unique (check the eval setting first -> #3063)
                    
    if ($arrData['eval']['unique'] && $varValue != '' && !$this->Database->isUniqueValue('tl_member'$field$varValue))
                    {
                        
    $objWidget->addError(sprintf($GLOBALS['TL_LANG']['ERR']['unique'], $arrData['label'][0] ?: $field));
                    }

                    
    // Save callback
                    
    if ($objWidget->submitInput() && !$objWidget->hasErrors() && is_array($arrData['save_callback']))
                    {
                        foreach (
    $arrData['save_callback'] as $callback)
                        {
                            
    $this->import($callback[0]);

                            try
                            {
                                
    $varValue $this->$callback[0]->$callback[1]($varValuenull);
                            }
                            catch (\
    Exception $e)
                            {
                                
    $objWidget->class 'error';
                                
    $objWidget->addError($e->getMessage());
                            }
                        }
                    }

                    
    // Store the current value
                    
    if ($objWidget->hasErrors())
                    {
                        
    $doNotSubmit true;
                    }
                    elseif (
    $objWidget->submitInput())
                    {
                        
    $arrUser[$field] = $varValue;
                    }
                }

                if (
    $objWidget instanceof \uploadable)
                {
                    
    $hasUpload true;
                }

                
    $temp $objWidget->parse();

                
    $this->Template->fields .= $temp;
                
    $arrFields[$arrData['eval']['feGroup']][$field] .= $temp;

                ++
    $i;
            } 
    Klar müsste man beim Java Script noch abfangen können, ob es in der Zwischenzeit ein Fehler gegeben hat
    Geändert von xchs (20.10.2013 um 10:13 Uhr)

  8. #8
    Contao-Fan Avatar von bekanntmacher
    Registriert seit
    13.08.2009.
    Ort
    St. Gallen, Schweiz
    Beiträge
    354
    Partner-ID
    6419

    Standard

    Bitte schliesse Code in ein, so ist er lesbarar, bzw wird überhaupt gelesen...

    Du bist auf dem Holzweg: submit() wird ausgeführt, wenn du den Button klickst. Zu diesem Zeitpunkt hast du aber noch keine serverseitige Validierung. Dazu müsstest du in der submit()-Funktion einen Ajax-Request machen und die Antwort vom Server entsprechend auswerten.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •