Hallo Community,
ich habe hier ein problem und bräuchte etwas Hilfe.
Folgendes Problem habe ich.
Ich habe ein Ajax basiertes Formular, welches per Ajax und PHP eine E-Mail (sendmail.php)
abschickt. Soweit Funktioniert auch alles zumindest mit der E-Mail. Daten werden korrekt gesendet.
Nun Habe ich eine Datenbank angelegt und möcht, dass die Daten zuvor auch in die Datenbank eingetragen werden. Da liegt mein Problem.
Die Daten werden nicht in die Datenbank eingetragen, aber die E-Mail wird gesendet und Daten sind vorhanden.
Hier mal meine sendmail.php, die via ajax angesprochen wird:
Die SimplifiedDBPDO.php ist eine PDO Helper Klasse, die ich auch erfolgreich in anderen Projekten verwendet habe.
Meine DB habe ich wie folgt erstellt (sql)
Ich habe Stunden verbracht, der Error log spuckt keine Fehler aus und ich weiss mir keinen Rat mehr.
Ich habe auch dem $insertRoles Array mal "feste" Werte gegeben und 1mal wurde etwas eingetragen, allerdings 2mal (?). Danach wurde wieder nix eingetragen.
Es ist wie verhext.
Hier mal noch mein Ajax Script, den ich verwende
Noch zur Info, das Formular hat inputfelder, checkboxen und 2 Select Felder.
Bitte helft mir auf die Sprünge.
Vorab Vielen Dank
Steffen
ich habe hier ein problem und bräuchte etwas Hilfe.
Folgendes Problem habe ich.
Ich habe ein Ajax basiertes Formular, welches per Ajax und PHP eine E-Mail (sendmail.php)
abschickt. Soweit Funktioniert auch alles zumindest mit der E-Mail. Daten werden korrekt gesendet.
Nun Habe ich eine Datenbank angelegt und möcht, dass die Daten zuvor auch in die Datenbank eingetragen werden. Da liegt mein Problem.
Die Daten werden nicht in die Datenbank eingetragen, aber die E-Mail wird gesendet und Daten sind vorhanden.
Hier mal meine sendmail.php, die via ajax angesprochen wird:
PHP-Code:
<?php
include("SimplifiedDBPDO.php");
if (isset($_POST["anrede"]) && isset($_POST["vorname"]) && isset($_POST["nachname"]) && isset($_POST["email"]) && isset($_POST["strasse"]) && isset($_POST["nummer"]) && isset($_POST["plz"]) && isset($_POST["ort"]) && isset($_POST["land"])) {
$sdb = new SimplifiedDB();
$sdb->dbConnect("localhost", "user", "pass", "db");
$insertRoles = array();
$insertRoles["firma"] = $_POST["firma"];
$insertRoles["anrede"] = $_POST["anrede"];
$insertRoles["titel"] = $_POST["titel"];
$insertRoles["vorname"] = $_POST["vorname"];
$insertRoles["nachname"] = $_POST["nachname"];
$insertRoles["strasse"] = $_POST["strasse"];
$insertRoles["nummer"] = $_POST["nummer"];
$insertRoles["plz"] = $_POST["plz"];
$insertRoles["ort"] = $_POST["ort"];
$insertRoles["land"] = $_POST["land"];
$insertRoles["telefon"] = $_POST["telefon"];
$insertRoles["email"] = $_POST["email"];
$insertRoles["neueenergien"] = $_POST["ne"];
$insertRoles["venturecapital"] = $_POST["vc"];
$insertRoles["privateequity"] = $_POST["pe"];
$insertRoles["rohstoffe"] = $_POST["roh"];
$insertRoles["bestandsimmobilienab"] = $_POST["biab"];
$insertRoles["bestandsimmobiliennb"] = $_POST["binb"];
$insertRoles["denkmalimmobilienab"] = $_POST["diab"];
$insertRoles["denkmalimmobiliennb"] = $_POST["dinb"];
$insertRoles["investitionslaufzeit"] = $_POST["il"];
$insertRoles["investitionshoehe"] = $_POST["ih"];
$sdb->dbInsert("adresspool", $insertRoles);
if ($sdb) {
$to = "yz@email.de";
$subject = "Eine Eintragung von " . $_POST["nachname"] . " in den Letter";
$message = 'Sehr geehrte Damen und Herren,' . "\n\n" . 'Es wurde eine Eintragung für den Letter vorgenommen.' . "\n" . 'Folgende Daten hat der Interessent angegeben:' . "\n\n" . 'Firma: ' . $_POST["firma"] . "\n" . 'Anrede: ' . $_POST["anrede"] . "\n" . 'Titel: ' . $_POST["titel"] . "\n" . 'Vorname: ' . $_POST["vorname"] . "\n" . 'Nachname: ' . $_POST["nachname"] . "\n" . 'Straße Nr: ' . $_POST["strasse"] . ' ' . $_POST["nummer"] . "\n" . 'PLZ Ort: ' . $_POST["plz"] . ' ' . $_POST["ort"] . "\n" . 'Land: ' . $_POST["land"] . "\n" . 'E-Mail: ' . $_POST["email"] . "\n" . 'Telefon: ' . $_POST["telefon"] . "\n" . 'Neue Energien: ' . $_POST["ne"] . "\n" . 'Venture Capital: ' . $_POST["vc"] . "\n" . 'Private Equity: ' . $_POST["pe"] . "\n" . 'Rohstoffe: ' . $_POST["roh"] . "\n" . 'Bestandsimmobilien AB: ' . $_POST["biab"] . "\n" . 'Bestandsimmobilien NB: ' . $_POST["binb"] . "\n" . 'Denkmalschutzimmobilien AB: ' . $_POST["diab"] . "\n" . 'Denkmalschutzimmobilien NB: ' . $_POST["dinb"] . "\n" . 'Laufzeit: bis ' . $_POST["il"] . ' Jahre' . "\n" . 'Invetitionshöhe: ab € ' . $_POST["ih"] . "\n\n" . "Die Anfrage wurde von der XYZ Seite gesendet." . "\n\n" . 'Mit freundlichen Grüßen' . "\n" . 'Ihr Team';
$from = 'test@test.de';
$headers = 'From: ' . $from . "\n" . 'Content-Type: text/plain; charset="utf-8"';
mail($to, $subject, $message, $headers);
echo "Success";
}
}
Meine DB habe ich wie folgt erstellt (sql)
Code:
CREATE TABLE IF NOT EXISTS `adresspool` ( `id` int(10) NOT NULL AUTO_INCREMENT, `firma` varchar(255) NOT NULL, `anrede` varchar(255) NOT NULL, `titel` varchar(255) NOT NULL DEFAULT '0', `vorname` varchar(255) NOT NULL, `nachname` varchar(255) NOT NULL, `strasse` varchar(255) NOT NULL, `nummer` varchar(8) NOT NULL, `plz` varchar(5) NOT NULL, `ort` varchar(255) NOT NULL, `land` varchar(255) NOT NULL, `telefon` varchar(255) NOT NULL DEFAULT '0', `email` varchar(255) NOT NULL, `neueenergien` int(1) NOT NULL DEFAULT '0', `venturecapital` int(1) NOT NULL DEFAULT '0', `privateequity` int(1) NOT NULL DEFAULT '0', `rohstoffe` int(1) NOT NULL DEFAULT '0', `bestandsimmobilienab` int(1) NOT NULL DEFAULT '0', `bestandsimmobiliennb` int(1) NOT NULL DEFAULT '0', `denkmalimmobilienab` int(1) NOT NULL DEFAULT '0', `denkmalimmobiliennb` int(1) NOT NULL DEFAULT '0', `investitionslaufzeit` varchar(255) NOT NULL, `investitionshoehe` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Ich habe auch dem $insertRoles Array mal "feste" Werte gegeben und 1mal wurde etwas eingetragen, allerdings 2mal (?). Danach wurde wieder nix eingetragen.
Es ist wie verhext.
Hier mal noch mein Ajax Script, den ich verwende
Code:
var winW, winH, winS = $(window).scrollTop(), isMobile = false, isTablet = false, tabletThr = 1024, // tablet threshold mobileThr = 720, // mobile threshold header, // header hH = 56, // header height pR = 4; // paralax ratio $.ajaxSetup({ cache: false }); // Prevents caching // jQ Easing extension jQuery.easing.swing = jQuery.easing.swing; jQuery.extend( jQuery.easing, { def: 'easeOutQuad', swing: function (x, t, b, c, d) { //alert(jQuery.easing.default); return jQuery.easing[jQuery.easing.def](x, t, b, c, d); }, easeInExpo: function (x, t, b, c, d) { return (t===0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; }, easeOutExpo: function (x, t, b, c, d) { return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; }, easeInOutExpo: function (x, t, b, c, d) { if (t===0) return b; if (t==d) return b+c; if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; } }); function initOnLoad() { adjustContent(); slideSwitcher( $("#testimonials") ); formActionHandler( $("#contact-form"), "php/sendmail.php" ); } $(window).on({ load: function(){ initOnLoad(); }, scroll: function(){ winS = $(window).scrollTop(); if ( winS >= 100 ) { header.addClass("compact"); } else { header.removeClass("compact"); } }, resize: function(){ getWindowDimensions(); adjustContent(); } }); function getWindowDimensions(){ winH = $(window).height(); winW = $(window).width(); if ( winW < tabletThr ) { isTablet = true; } else { isTablet = false; } if ( winW < mobileThr ) { isMobile = true; } else { isMobile = false; } } function adjustContent(){ // 0. Getting window dimensions getWindowDimensions(); // 2. Adjusting testimonials slideshow var liMH = 0, ulH = 0; $("#testimonials-container") .find("li") .each( function(){ var liH = $(this).height(); if ( liH > liMH ){ liMH = liH; ulH = liMH; $("#testimonials-container").height( ulH ); } }) .each( function(){ var liH = $(this).height(); if ( liH < ulH ) { $(this).css({ top: (ulH-liH)/2 }); } }); } function slideSwitcher( slideShow ) { var slides = slideShow.find(".slides"), slideNav = slideShow.find(".slide-nav"), slideNavItems = slideShow.find(".slide-nav li"); slideNavItems .on({ click: function(){ var slideInd = $(this).index(); slideNavItems.removeClass("current"); $(this).addClass("current"); slides .find("li") .removeClass("current") .eq(slideInd) .addClass("current"); return false; } }); } function formActionHandler( form, actionURL ){ form.on({ submit: function(){ $(this).removeClass("sent"); var reqEmpty = $(this).find(".required").filter( function(){ return $(this).val() == ""; }), data = ""; $(this).find(".invalid").removeClass("invalid"); if ( reqEmpty.length !== 0 ) { reqEmpty .first() .addClass("invalid") .focus(); } else { data = $(this).serialize(); $.ajax({ type: "POST", url: actionURL, data: data, beforeSend: function(){ form.addClass("standby"); }, success: function( data ) { form.addClass("sent"); setTimeout(function(){ resetForm( form ); }, 2000 ); } }); } return false; } }); function resetForm( form ) { form.find("input, textarea").val(""); } }
Noch zur Info, das Formular hat inputfelder, checkboxen und 2 Select Felder.
Bitte helft mir auf die Sprünge.
Vorab Vielen Dank
Steffen
Kommentar