Werte eines Formulares nach dem Absenden weiterverarbeiten

13. Nov 2015

Werte, die in ein (Kontakt)-Formular eingegeben wurden, können Sie auf unterschiedliche Weise nach dem Absenden weiterverarbeiten.

Weblication® CMS liefert Ihnen mit dem Weblic® Formular vielfältige Möglichkeiten, die Formulardaten weiter zu verarbeiten. Wir zeigen Ihnen nachfolgend ein paar Möglichkeiten auf. Die Umsetzungen basieren auf dem jeweils aktuellen Formular-Weblic®. Mit dem Formulareditor-Modul haben Sie zudem eine komfortable Möglichkeit, diese Umsetzungen rein über Pflegemasken zu realisieren.

Beispiel 1: Formularwerte über eine Session an die Bestätigungsseite übergeben

Um die Daten, die ein Besucher über das Kontakt-Formular eingibt, nach dem Absenden über die Session an die Bestätigungsseite (Danke-Seite) zu übergeben, können Sie auf Framework-Funktionen zurückgreifen.

Hierzu speichern Sie im Formular die Werte z.B. über die Framework-Funktion wSession::setValue. Setzen Sie dies im Formular, bevor die Daten gelöscht werden ( $this->initFormData() ). Auf diese gespeicherten Werte können Sie nach Abschicken des Formulares über die Framework-Funktion wSession::getValue zurückgreifen. Das folgende Beispiel zeigt dies anhand der Danke-Seite, die über redirectSuccess nach Versand des Formulares angezeigt wird.

Beispiel: Auszug aus der Kontaktseite index.php mit Setzen der Werte über eine Session

...
<wd:fragment id="serverEventOnSubmit" type="text.script"><![CDATA[
...
// ...
    //Hier können Sie weitere Funktionen einfügen

    wSession::setValue('kontaktanfrage',$this->getFormData());
    $this->initFormData();
// ...
]]></wd:fragment>
...

Beispiel: Auszug aus der Bestätigungsseite danke.php mit Auslesen der Werte aus der Session

...
    <wd:item type="script.php" uid="154554cc59b435db25f02fbaa9227d66">
      <wd:fragment id="title" type="char.text"/>
      <wd:fragment id="display" type="char.display"/>
      <wd:fragment id="text" type="text.standard"><![CDATA[
  print '<div class="elementForm">';
  print '  <dl class="formTable">';
  $formData = wSession::getValue('kontaktanfrage');
  
  if($formData != NULL){
  	print '<dt><label>Anrede:</label></dt>';
  	print '<dd>'.$formData['title'].'</dd>';
  	print '<dt><label>Vorname:</label></dt>';
  	print '<dd>'.$formData['firstname'].'</dd>';
  	print '<dt><label>Nachname:</label></dt>';
  	print '<dd>'.$formData['lastname'].'</dd>';
  	print '<dt><label>E-Mail:</label></dt>';
  	print '<dd>'.$formData['email'].'</dd>';
  	print '<dt><label>Mitteilung:</label></dt>';
  	print '<dd>'.$formData['message'].'</dd>';
  }
  
  print '  </dl></div><div style="clear:both"></div>';
]]></wd:fragment>
      <wd:fragment id="execution" type="char.default">post</wd:fragment>
    </wd:item>
...

Beispiel 2: Formularwerte über Get-Parameter an die Bestätigungsseite übergeben

Um die Daten, die ein Besucher über das Kontakt-Formular eingibt, nach dem Absenden über URL-Parameter via GET an die Bestätigungsseite (Danke-Seite) zu übergeben, können Sie auf Framework-Funktionen zurückgreifen.

Hierzu übergeben Sie im Formular die Werte an die Weiterleitungsseite nach dem Absenden (redirectURL). Ergänzen Sie dies im Formular am besten dort, wo Sie weitere Funktionen innerhalb der Box "Nach dem Absenden auszuführendes Skript" (serverEventOnSubmit) einfügen können. Auf diese URL Get-Parameter können Sie nach Abschicken des Formulares über die Framework-Funktion wRequest::getParameterSecure zurückgreifen. Das folgende Beispiel zeigt dies anhand der Danke-Seite, die über redirectSuccess nach Versand des Formulares angezeigt wird.

Beispiel: Auszug aus der Kontaktseite index.php mit Setzen der Werte als URL-Parameter

...
<wd:fragment id="serverEventOnSubmit" type="text.script"><![CDATA[
...
// ...
  //Hier können Sie weitere Funktionen einfügen

  $this->initFormData();
  $this->setStatus("sent");
  wCache::clearCachePath($this->url);
    
  if($this->getVar("redirectSuccess") == ""){
    $redirectURL = wURL::setParameter($this->url, 'wFormStatus', '');
    wOutput::loadWithoutCache($redirectURL);
    wResponse::redirect($redirectURL);
  }
  else{
    //wResponse::redirect($this->getVar("redirectSuccess"));
    $redirectURL= 'http://'.$_SERVER["HTTP_HOST"].$this->getVar("redirectSuccess");
    
    $redirectURL= wURL::setParameter($redirectURL, 'subject', $mailData["subject"]);
    $redirectURL= wURL::setParameter($redirectURL, 'lastname', $mailData["lastname"]);
    $redirectURL= wURL::setParameter($redirectURL, 'firstname', $mailData["firstname"]);
    $redirectURL= wURL::setParameter($redirectURL, 'email', $mailData["email"]);
    $redirectURL= wURL::setParameter($redirectURL, 'message', $mailData["message"]);    
    wResponse::redirect($redirectURL);
  }
// ...
]]></wd:fragment>
...

Beispiel: Auszug aus der Bestätigungsseite danke.php mit Auslesen der Werte

...
    <wd:item type="script.php" uid="154554cc59b435db25f02fbaa9227d66">
      <wd:fragment id="title" type="char.text"/>
      <wd:fragment id="display" type="char.display"/>
      <wd:fragment id="text" type="text.standard"><![CDATA[  print '<div class="elementForm">';
  print '  <dl class="formTable">';
  $formSubject   = wRequest::getParameterSecure('subject');
  $formFirstname = wRequest::getParameterSecure('firstname');
  $formLastname  = wRequest::getParameterSecure('lastname');
  $formEmail     = wRequest::getParameterSecure('email');
  $formMessage   = wRequest::getParameterSecure('message');
  
  if($formSubject != NULL){
  	print '<dt><label>Betreff:</label></dt>';
  	print '<dd>'.$formSubject.'</dd>';
  	print '<dt><label>Vorname:</label></dt>';
  	print '<dd>'.$formFirstname.'</dd>';
  	print '<dt><label>Nachname:</label></dt>';
  	print '<dd>'.$formLastname.'</dd>';
  	print '<dt><label>E-Mail:</label></dt>';
  	print '<dd>'.$formEmail.'</dd>';
  	print '<dt><label>Mitteilung:</label></dt>';
  	print '<dd>'.$formMessage.'</dd>';
  }
  
  print '  </dl></div><div style="clear:both"></div>';]]></wd:fragment>
      <wd:fragment id="execution" type="char.default">post</wd:fragment>
    </wd:item>
...

Ähnliche Seiten

Entwicklerbereich Weblication® CMS - © Scholl Communications AG