Javascript schreibt nicht in <div>

UncleB

Mitglied
Hallo,
Ich hab mir vo ein paar Tagen mal ein Kontaktformular in PHP geschrieben,
Was auch ganz gut funktioniert,
Jedoch würde ich die Fehlermeldung bzw Erfolgsmeldung gern mittels Javascript in einer <div> ausgeben lassen,
Ich hab dazu im netz ne function gefunden, dennoch bring ich das ganze Ding nich zu laufen, kann mir da jemand weiter helfen?
zu finden ist das ganze hier,
Und mein Code:
Code:
<script type="text/javascript">
var req; // public reg

function send_form(form, url, fnc_onreadystatechange){
    var form_params = document[form].elements;
    if (!params)
        var params = '';
    
    for (x in document[form].elements) {
        if (document[form].elements[x].value && document[form].elements[x].name) {
            params += document[form].elements[x].name + '=' + document[form].elements[x].value + '&';
        }
    }
    req = null; // nicht mehr private
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {
            try {
                req = new XMLHttpRequest();
            }
            catch (e) {
            }
        }
    }
    if (req == null)
        throw new Error('XMLHttpRequest not supported');
    
    req.open("POST", url, false);
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.send(params);
    
    reg.onreadystatechange = fnc_onreadystatechange;

    //return req.responseText;
}

function formular (form, url)
{
    send_form (form, url, function()
    {
        console.info('Hallo, das hier sollte man dann in Firebug sehen... ca. 4 mal, wennd as Formular abgesendet wurde');
        if (reg.readyState == 4) {// wenn die Abfrage fertig ist, sollte in jeder Funktion vorhanden sein!

            document.getElementById('formular_send_info').innerHTML = reg.responseText;
        }
    });
}
</script>
<br />
<br />
<br />
<div id="formular_send_info"></div>
<?php
$nachname = $_POST['nachname'];
$vorname = $_POST['vorname'];
$responder_email = $_POST['email'];
$kommentar = $_POST['kommentar'];
$ip = $_SERVER['REMOTE_ADDR'];
$header_responder = 'From: info@sv-forsting.de';
    	  			'Reply-To: info@rw-forsting.de';
    	  			'X-Mailer: PHP/' . phpversion();
					
$header = 'From: kontaktformular@sv-forsting.de';
    	  'X-Mailer: PHP/' . phpversion();

$email_adresse = "unger85@gmail.com";
$betreff = "E-Mail von SVF Website";


$formular="
<form action=\"kontaktformular.php\" name=\"action\" method=\"post\">\n
Nachname:<br />\n
<input type=\"text\" size=\"30\" name=\"nachname\"><br />\n
Vorname: <br />\n
<input type=\"text\" size=\"30\" name=\"vorname\"><br />\n
E-Mail Adresse: <br />\n
<input type=\"text\" size=\"30\" name=\"email\"><br />\n
Kommentar: <br />\n
<textarea rows=\"10\" cols=\"50\" name=\"kommentar\"></textarea>\n
<br />\n
<input type=\"submit\" name=\"submit\" onclick=\"formular(\'Kontaktformular\', \'kontaktformular.php\');return false;\" value=\"Abschicken\" class=\"senden\">\n
</form>";

if(!isset($_POST['submit']))
{
    print $formular;
}
else {
	if (empty($nachname))
	{
		$error.= "<li>Kein Nachname angegeben</li>";
	}
	
	if (empty($vorname))
	{
		$error.="<li>Kein Vorname angegeben</li>";
	}
	
	if (empty($responder_email))
	{
		$error.="<li>Keine E-Mail Adresse angegeben</li>" ;
	}
	
	if (empty($kommentar))
	{
		$error.="<li>Keinen Kommentar geschrieben</li>";
	}
	
	if (!empty($error))
	{
		print "$error <br />";
		print $formular;
	}
else
	{
		print "Kontaktformular erfolgreich versendet";
	



$email = '
Formular:

Nachname:   '.$nachname.'
Vorname:    '.$vorname.'
E-mail:     '.$email.'

-------------------------------
Kommentar:  '.$kommentar.'
-------------------------------

IP:         '.$ip.'';


$responder_nachricht='
Ihre Anfrage wird bearbeitet!';


mail($email_adresse, $betreff, $email, $header);
mail($responder_email, $betreff, $responder_nachricht, $header_responder);

	}}

?>

Dankeschön
 
Hi,

zunächst müssen die Backslashes vor den einfachen Anführungszeichen im Funktionsaufruf entfernt werden.
Code:
<input type=\"submit\" name=\"submit\" onclick=\"formular('Kontaktformular', 'kontaktformular.php');return false;\" value=\"Abschicken\" class=\"senden\">\n
</form>";

Weiterhin solltest du die Formularelemente in einer "gewöhnlichen" for-Schleife durchlaufen.
Code:
    for(var i=0; i<form_params.length; i++){
        if (document[form].elements[i].value && document[form].elements[i].name) {
            params += document[form].elements[i].name + '=' + document[form].elements[i].value + '&';
        }
    }

Der Request sollte asynchron abgesetzt werden. Dazu wird der dritte Parameter der Methode open auf true gesetzt.
Code:
req.open("POST", url, true);

Zuletzt hast du an einigen Stellen in req das kleine Q mit einem kleinen G verwechselt reg. Das musst du ebenfalls noch ausbessern.

Ciao
Quaese
 
Danke für deine Antwort,
Hab alles abgeändert wie von die beschrieben, hab aber immer noch das gleiche Problem?
Mein Code
Code:
<script type="text/javascript">
var req; // public reg

function send_form(form, url, fnc_onreadystatechange){
    var form_params = document[form].elements;
    if (!params)
        var params = '';
    
    for(var i=0; i<form_params.length; i++){
        if (document[form].elements[i].value && document[form].elements[i].name) {
            params += document[form].elements[i].name + '=' + document[form].elements[i].value + '&';
        }
    }
    req = null; // nicht mehr private
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {
            try {
                req = new XMLHttpRequest();
            }
            catch (e) {
            }
        }
    }
    if (req == null)
        throw new Error('XMLHttpRequest not supported');
    
    req.open("POST", url, true);
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.send(params);
    
    req.onreadystatechange = fnc_onreadystatechange;

    //return req.responseText;
}

function formular (form, url)
{
    send_form (form, url, function()
    {
        console.info('Hallo, das hier sollte man dann in Firebug sehen... ca. 4 mal, wennd as Formular abgesendet wurde');
        if (req.readyState == 4) {// wenn die Abfrage fertig ist, sollte in jeder Funktion vorhanden sein!

            document.getElementById('formular_send_info').innerHTML = req.responseText;
        }
    });
}
</script>
<br />
<br />
<br />
<div id="formular_send_info"></div>
<?php
$nachname = $_POST['nachname'];
$vorname = $_POST['vorname'];
$responder_email = $_POST['email'];
$kommentar = $_POST['kommentar'];
$ip = $_SERVER['REMOTE_ADDR'];
$header_responder = 'From: info@sv-forsting.de';
    	  			'Reply-To: info@rw-forsting.de';
    	  			'X-Mailer: PHP/' . phpversion();
					
$header = 'From: kontaktformular@sv-forsting.de';
    	  'X-Mailer: PHP/' . phpversion();

$email_adresse = "unger85@gmail.com";
$betreff = "E-Mail von SVF Website";


$formular="
<form action=\"kontaktformular.php\" name=\"action\" method=\"post\">\n
Nachname:<br />\n
<input type=\"text\" size=\"30\" name=\"nachname\"><br />\n
Vorname: <br />\n
<input type=\"text\" size=\"30\" name=\"vorname\"><br />\n
E-Mail Adresse: <br />\n
<input type=\"text\" size=\"30\" name=\"email\"><br />\n
Kommentar: <br />\n
<textarea rows=\"10\" cols=\"50\" name=\"kommentar\"></textarea>\n
<br />\n
<input type=\"submit\" name=\"submit\" onclick=\"formular('Kontaktformular', 'kontaktformular.php');return false;\" value=\"Abschicken\" class=\"senden\">\n
</form>";

if(!isset($_POST['submit']))
{
    print $formular;
}
else {
	if (empty($nachname))
	{
		$error.= "<li>Kein Nachname angegeben</li>";
	}
	
	if (empty($vorname))
	{
		$error.="<li>Kein Vorname angegeben</li>";
	}
	
	if (empty($responder_email))
	{
		$error.="<li>Keine E-Mail Adresse angegeben</li>" ;
	}
	
	if (empty($kommentar))
	{
		$error.="<li>Keinen Kommentar geschrieben</li>";
	}
	
	if (!empty($error))
	{
		print "$error <br />";
		print $formular;
	}
else
	{
		print "Kontaktformular erfolgreich versendet";
	



$email = '
Formular:

Nachname:   '.$nachname.'
Vorname:    '.$vorname.'
E-mail:     '.$email.'

-------------------------------
Kommentar:  '.$kommentar.'
-------------------------------

IP:         '.$ip.'';


$responder_nachricht='
Ihre Anfrage wird bearbeitet!';


mail($email_adresse, $betreff, $email, $header);
mail($responder_email, $betreff, $responder_nachricht, $header_responder);

	}}

?>

Zugriffsdaten:
Name: tut
PW: orials
 
Zuletzt bearbeitet:
Hi,

ohne viele Worte und Erklärung - versuch es mal mit folgendem Konstrukt.

mail-Anweisungen müssen wieder auskommentiert und die E-Mail-Adressen angepasst werden.
Code:
<?php
function checkPost($arrPost){
  if (empty($arrPost['nachname'])){
    $error.= "<li>Kein Nachname angegeben</li>";
  }
  if (empty($arrPost['vorname'])){
    $error.="<li>Kein Vorname angegeben</li>";
  }

  if (empty($arrPost['email'])){
    $error.="<li>Keine E-Mail Adresse angegeben</li>" ;
  }

  if (empty($arrPost['kommentar'])){
    $error.="<li>Keinen Kommentar geschrieben</li>";
  }

  if (!empty($error)){
    print "$error <br />";
    //print $formular;
  }else{
    print "Kontaktformular erfolgreich versendet";

    $strEmail = '
    Formular:

    Nachname:   '.$arrPost['nachname'].'
    Vorname:    '.$arrPost['vorname'].'
    E-mail:     '.$arrPost['email'].'

    -------------------------------
    Kommentar:  '.$arrPost['kommentar'].'
    -------------------------------

    IP:         '.$arrPost['ip'].'';

    $responder_nachricht='
    Ihre Anfrage wird bearbeitet!';

    echo($strEmail);

    //mail($email_adresse, $betreff, $email, $header);
    //mail($responder_email, $betreff, $responder_nachricht, $header_responder);

  }
}

// Falls ein Ajax-Request abgesetzt wurde
if(isset($_POST['submit_js'])){
	checkPost($_POST);
  exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<script type="text/javascript">
var req; // public reg

function send_form(form, url, fnc_onreadystatechange){
    var form_params = document[form].elements;
    if (!params)
        var params = '';

    for(var i=0; i<form_params.length; i++){
        if (document[form].elements[i].value && document[form].elements[i].name) {
            params += document[form].elements[i].name + '=' + document[form].elements[i].value + '&';
        }
    }
    req = null; // nicht mehr private
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {
            try {
                req = new XMLHttpRequest();
            }
            catch (e) {
            }
        }
    }
    if (req == null)
        throw new Error('XMLHttpRequest not supported');

    req.open("POST", url, true);
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.send(params);

    req.onreadystatechange = fnc_onreadystatechange;

    //return req.responseText;
}

function formular (form, url, objBtn){
  objBtn.name = "submit_js";

    send_form (form, url, function()
    {
        //console.info('Hallo, das hier sollte man dann in Firebug sehen... ca. 4 mal, wennd as Formular abgesendet wurde');
        if (req.readyState == 4) {// wenn die Abfrage fertig ist, sollte in jeder Funktion vorhanden sein!

            document.getElementById('formular_send_info').innerHTML = req.responseText;
        }
    });
}
</script>
<br />
<br />
<br />
<div id="formular_send_info"></div>
<?php
$nachname = $_POST['nachname'];
$vorname = $_POST['vorname'];
$responder_email = $_POST['email'];
$kommentar = $_POST['kommentar'];
$ip = $_SERVER['REMOTE_ADDR'];
$header_responder = 'From: hab@ich.net';
    	  			'Reply-To: hab@ich.net';
    	  			'X-Mailer: PHP/' . phpversion();

$header = 'From: kontaktformular@sv-forsting.de';
    	  'X-Mailer: PHP/' . phpversion();

$email_adresse = "hab@ich.net";
$betreff = "E-Mail von hab-ich-net-Website";


$formular="
<form name=\"Kontaktformular\" action=\"TutEs1.php\" name=\"action\" method=\"post\">\n
Nachname:<br />\n
<input type=\"text\" size=\"30\" name=\"nachname\"><br />\n
Vorname: <br />\n
<input type=\"text\" size=\"30\" name=\"vorname\"><br />\n
E-Mail Adresse: <br />\n
<input type=\"text\" size=\"30\" name=\"email\"><br />\n
Kommentar: <br />\n
<textarea rows=\"10\" cols=\"50\" name=\"kommentar\"></textarea>\n
<br />\n
<input type=\"submit\" name=\"submit\" onclick=\"formular('Kontaktformular', 'TutEs1.php', this);return false;\" value=\"Abschicken\" class=\"senden\">\n
</form>";

if(!isset($_POST['submit']))
{
	print $formular;
}
else {
  checkPost($_POST);
  print "<h2>Neue Seite</h2>";
  print $formular;
}

?>
</body>
</html>

Ciao
Quaese
 
Hallo,
Danke fürs Script Fehlerausgabe funktioniert,
aber die E-Mail wird nicht versendet

Hast du es getestet?
Anweisung ist auskommandiert und E-Mail Adresse ist auch wieder zurück geändert

Code:
<?php
function checkPost($arrPost){
  if (empty($arrPost['nachname'])){
    $error.= "<li>Kein Nachname angegeben</li>";
  }
  if (empty($arrPost['vorname'])){
    $error.="<li>Kein Vorname angegeben</li>";
  }

  if (empty($arrPost['email'])){
    $error.="<li>Keine E-Mail Adresse angegeben</li>" ;
  }

  if (empty($arrPost['kommentar'])){
    $error.="<li>Keinen Kommentar geschrieben</li>";
  }

  if (!empty($error)){
    print "$error <br />";
    //print $formular;
  }else{
    print "Kontaktformular erfolgreich versendet";

    $strEmail = '
    Formular:

    Nachname:   '.$arrPost['nachname'].'
    Vorname:    '.$arrPost['vorname'].'
    E-mail:     '.$arrPost['email'].'

    -------------------------------
    Kommentar:  '.$arrPost['kommentar'].'
    -------------------------------

    IP:         '.$arrPost['ip'].'';

    $responder_nachricht='
    Ihre Anfrage wird bearbeitet!';

    echo($strEmail);

    mail($email_adresse, $betreff, $email, $header);
    mail($responder_email, $betreff, $responder_nachricht, $header_responder);

  }
}

// Falls ein Ajax-Request abgesetzt wurde
if(isset($_POST['submit_js'])){
	checkPost($_POST);
  exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<script type="text/javascript">
var req; // public reg

function send_form(form, url, fnc_onreadystatechange){
    var form_params = document[form].elements;
    if (!params)
        var params = '';

    for(var i=0; i<form_params.length; i++){
        if (document[form].elements[i].value && document[form].elements[i].name) {
            params += document[form].elements[i].name + '=' + document[form].elements[i].value + '&';
        }
    }
    req = null; // nicht mehr private
    try {
        req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {
            try {
                req = new XMLHttpRequest();
            }
            catch (e) {
            }
        }
    }
    if (req == null)
        throw new Error('XMLHttpRequest not supported');

    req.open("POST", url, true);
    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req.send(params);

    req.onreadystatechange = fnc_onreadystatechange;

    //return req.responseText;
}

function formular (form, url, objBtn){
  objBtn.name = "submit_js";

    send_form (form, url, function()
    {
        //console.info('Hallo, das hier sollte man dann in Firebug sehen... ca. 4 mal, wennd as Formular abgesendet wurde');
        if (req.readyState == 4) {// wenn die Abfrage fertig ist, sollte in jeder Funktion vorhanden sein!

            document.getElementById('formular_send_info').innerHTML = req.responseText;
        }
    });
}
</script>
<br />
<br />
<br />
<div id="formular_send_info"></div>
<?php
$nachname = $_POST['nachname'];
$vorname = $_POST['vorname'];
$responder_email = $_POST['email'];
$kommentar = $_POST['kommentar'];
$ip = $_SERVER['REMOTE_ADDR'];
$header_responder = 'From: hab@ich.net';
    	  			'Reply-To: hab@ich.net';
    	  			'X-Mailer: PHP/' . phpversion();

$header = 'From: kontaktformular@sv-forsting.de';
    	  'X-Mailer: PHP/' . phpversion();

$email_adresse = "unger85@gmail.com";
$betreff = "E-Mail von hab-ich-net-Website";


$formular="
<form name=\"Kontaktformular\" action=\"kontakt.php\" name=\"action\" method=\"post\">\n
Nachname:<br />\n
<input type=\"text\" size=\"30\" name=\"nachname\"><br />\n
Vorname: <br />\n
<input type=\"text\" size=\"30\" name=\"vorname\"><br />\n
E-Mail Adresse: <br />\n
<input type=\"text\" size=\"30\" name=\"email\"><br />\n
Kommentar: <br />\n
<textarea rows=\"10\" cols=\"50\" name=\"kommentar\"></textarea>\n
<br />\n
<input type=\"submit\" name=\"submit\" onclick=\"formular('Kontaktformular', 'kontakt.php', this);return false;\" value=\"Abschicken\" class=\"senden\">\n
</form>";

if(!isset($_POST['submit']))
{
	print $formular;
}
else {
  checkPost($_POST);
  print "<h2>Neue Seite</h2>";
  print $formular;
}

?>
</body>
</html>
 
Zuletzt bearbeitet:
Ah Mist,
Ich meinte die E-Mail wird nich mehr versendet,
Also die Fehlerausgabe funktioniert.
Hab meinen obigen Text Editiert,
Sorry leute :rolleyes:
 
Das kann so nicht hinhauen mit den Variablen...

$email_adresse
$betreff
$email
$header
$responder_email
$betreff
$header_responder


das sind alles globale Variablen, auf welche man in Funktionen nicht einfach zugreifen kann.
Man muss sie per global dort bekannt machen, oder aber über den $GLOBALS-Array darauf zugreifen.
 
Dann muss praktisch der Teil hier in die Function oder? :
PHP:
$nachname = $_POST['nachname'];
$vorname = $_POST['vorname'];
$responder_email = $_POST['email'];
$kommentar = $_POST['kommentar'];
$ip = $_SERVER['REMOTE_ADDR'];
$header_responder = 'From: hab@ich.net';
    	  			'Reply-To: hab@ich.net';
    	  			'X-Mailer: PHP/' . phpversion();

$header = 'From: kontaktformular@sv-forsting.de';
    	  'X-Mailer: PHP/' . phpversion();

$email_adresse = "hab@ich.net";
$betreff = "E-Mail von hab-ich-net-Website";
 

Neue Beiträge

Zurück