Hey Leute,
folgendes Problem: Nachdem man das Kontaktfeld ausfüllt und auf senden klickt, wird die Benachrichtigung dass die Nachricht abgeschickt wurde, auf einer extra Seite geöffnet. Was ich nicht verstehe da ich das Kontakt-Formular und die php und js Dateien aus einer anderen Webseite (welches ein bekannter von mir programmiert hat, wo es auch funktioniert) kopiert habe, ich habe auch kontrolliert ob alles richtig verlinkt, im richtigen Ordner und auch auf dem richtigen Platz ist. An den Codes an sich habe ich nur die E-Mail Adresse und die Namen geändert, sonst nichts. Nach stundenlangem suchen und rum probieren finde ich leider das Problem nicht.
Hier die Codes:
html:
<form id="contact-form" action="assets/php/contact.php" method="post"> <div class="messages"></div> <div class="controls"> <div class="form-row"> <div> <div class="form-group"> <label class="d-xl-flex justify-content-xl-end" for="form_name"></label> <input class="form-control" type="text" id="form_name" data-error="Name erforderlich." name="name" required="" placeholder="Dein Name"> <div class="help-block with-errors"></div> </div> </div> </div> </div> <div class="form-row"> <div> <div class="form-group"> <label class="d-xl-flex justify-content-xl-end" for="form_email"></label> <input class="form-control" type="email" id="form_email" data-error="E-Mail erforderlich." name="email" required="" placeholder="Deine Mail"> <div class="help-block with-errors"></div> </div> </div> </div> <div class="form-row"> <div> <div class="form-group"> <label class="d-xl-flex justify-content-xl-end" for="form_phone"></label> <input class="form-control d-xl-flex justify-content-xl-start" type="text" id="form_subject" data-error="Betreff erforderlich." name="subject" required="" placeholder="Dein Thema (Betreff)"> <div class="help-block with-errors"></div> </div> </div> </div>
<div class="form-row"> <div> <div class="form-group"> <label class="d-xl-flex justify-content-xl-end" for="form_message"></label> <textarea class="form-control d-xl-flex justify-content-xl-start" type="text" id="form_message" data-error="Nachricht erforderlich." rows="8" name="message" required="" placeholder="Dein Anliegen"></textarea> <div class="help-block with-errors"></div> </div> </div> </div> <br> <div class="form-row"> <button class="btn btn-success btn-send submit" value="Senden" type="submit">senden</button> </div> </form>
Der php-code:
<?php/** CONFIGURE EVERYTHING HERE */// an email address that will be in the From field of the email.$from = 'Kontaktform KdB <[email=contactform@kulturderbewegung.de]contactform@kulturderbewegung.de[/email]>'; [i](das hier ist einer der veränderten codes)[/i]// an email address that will receive the email with the output of the form$sendTo = 'KDB Kontakt <[email=office@conweimar.de]office@conweimar.de[/email]>';[i] (das hier ist einer der veränderten codes)[/i]// subject of the email$subject = 'KdB Kontaktformular'; [i](das hier ist einer der veränderten codes)[/i]// form field names and their translations.// array variable name => Text to appear in the email$fields = array('name' => 'Name', 'email' => 'Email', 'subject' => 'Betreff', 'message' => 'Nachricht'); // message that will be displayed when everything is OK :)$okMessage = 'Wir haben deine Anfrage erhalten! Wir melden uns schnellstmöglich bei dir.';// If something goes wrong, we will display this message.$errorMessage = 'Es ist ein Fehler aufgetreten . Bitte später erneut versuchen';/* * LET'S DO THE SENDING */// if you are not debugging and don't need error reporting, turn this off by error_reporting(0);error_reporting(E_ALL & ~E_NOTICE);try{ if(count($_POST) == 0) throw new \Exception('Form is empty'); $emailText = "Neue Kontaktanfrage\n=============================\n"; foreach ($_POST as $key => $value) { // If the field exists in the $fields array, include it in the email if (isset($fields[$key])) { $emailText .= "$fields[$key]: $value\n"; } } // All the neccessary headers for the email. $headers = array('Content-Type: text/plain; charset="UTF-8";', 'From: ' . $from, 'Reply-To: ' . $from, 'Return-Path: ' . $from,); // Send email mail($sendTo, $subject, $emailText, implode("\n", $headers)); $responseArray = array('type' => 'success', 'message' => $okMessage);}catch (\Exception $e){ $responseArray = array('type' => 'danger', 'message' => $errorMessage);}// if requested by AJAX request return JSON responseif (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { $encoded = json_encode($responseArray); header('Content-Type: application/json'); echo $encoded;}// else just display the messageelse { echo $responseArray['message'];}
1. JS Code:
$(function () { $('#contact-form').validator(); $('#contact-form').on('submit', function (e) { if (!e.isDefaultPrevented()) { var url = "assets/php/contact.php"; $.ajax({ type: "POST", url: url, data: $(this).serialize(), success: function (data){ var messageAlert = 'alert-' + data.type; var messageText = data.message; var alertBox = '<div class="alert ' + messageAlert + ' alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' + messageText + '</div>'; if (messageAlert && messageText) {$('#contact-form').find('.messages').html(alertBox); $('#contact-form')[0].reset(); }}}); return false; }})});
Danke schonmal im voraus!