Zuerst einmal ein Hallo an alle.
bin ganz neu hier und versuche mich grad mit dem Einbau von Ajax in eine PHP-Seite.
Ich such jetzt schon stundenlange herum, aber komm nicht auf das Problem.
Und zwar habe ich folgendes:
Ich habe ein bestehendes PHP-Script zum Mailversand mit meinem Formular, Aufbau der Seite:
In der MAIL.CFG.PHP setze ich unter anderem den Mail-Text zusammen und sende es dann, wie wahrscheinlich bekannt ist:
So, es funktioniert jetzt alles wunderbar, aber...
Jetzt möchte ich aber nicht wieder die ganze Seite neu laden, sondern einfach eine Nachricht auf der Seite ausgeben, dass die Mail versandt wurde. Ich dachte mir, das wär optimal, um Ajax auszuprobiern. Also dann, meine Javascript-Datei schaut wie folgt aus:
Der Aufruf schaut jetzt eben wie folgt aus:
Jetzt komm ich einfach nicht drauf, warum das ganze nicht klappt?
Das Div wird brav angezeigt, aber die Mail einfach nicht versandt.
Wär wirklich super, wenn ihr da mal drüber schaun könntent.
Lg breakone
bin ganz neu hier und versuche mich grad mit dem Einbau von Ajax in eine PHP-Seite.
Ich such jetzt schon stundenlange herum, aber komm nicht auf das Problem.
Und zwar habe ich folgendes:
Ich habe ein bestehendes PHP-Script zum Mailversand mit meinem Formular, Aufbau der Seite:
Code:
<?php include ("php_mail/mail.cfg.php");?>
<form action="kontakt.php">
<input id="name" class="eingabe" maxLength="50" name="name" size="20" value="<?php echo $t_name; ?>" >
...
</form>
In der MAIL.CFG.PHP setze ich unter anderem den Mail-Text zusammen und sende es dann, wie wahrscheinlich bekannt ist:
Code:
mail($to,$subject,$m_text,$from);
So, es funktioniert jetzt alles wunderbar, aber...
Jetzt möchte ich aber nicht wieder die ganze Seite neu laden, sondern einfach eine Nachricht auf der Seite ausgeben, dass die Mail versandt wurde. Ich dachte mir, das wär optimal, um Ajax auszuprobiern. Also dann, meine Javascript-Datei schaut wie folgt aus:
Code:
//naja http request halt definieren
var http_request = false;
// Function MAKEPOSTREQUEST
function makePOSTRequest(url, parameters)
{
http_request = false;
//falls die funktion mehrmals aufgerufen wird nochmal auf false setzen
//überprüfen ob IE / mozilla safari opera etc und XMLhttprequest bzw XMLHttp laden
if (window.XMLHttpRequest)
{ // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{
// set type accordingly to anticipated content type
http_request.overrideMimeType('text/html');
}
}
else if (window.ActiveXObject)
{ // IE
try
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
//prüfen ob die entsprechende kompo geladen wurde
if (!http_request)
{
alert('Cannot create XMLHTTP instance');
return false;
}
//rückgabefunktion definieren
http_request.onreadystatechange = alertContents();
//verbindung öffnen
http_request.open('POST', url, true);
//header senden
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
//parameter senden
http_request.send(parameters);
//Ausgabe auf Seite
document.getElementById('outerdiv').style.visibility = "visible";
document.getElementById('innerdiv').innerHTML = "E-Mail wurde versandt...<br><br><a href=\"javascript:closeDiv();\">Zurück zur Seite</a><p>";
}
// END Function MAKEPOSTREQUEST
// Function ALERTCONTENTS
function alertContents()
{
//wenn der request fertig ist
if (http_request.readyState == 4)
{
//und erfolgreich war
if (http_request.status == 200)
{
//alert(http_request.responseText);
result = http_request.responseText;
}
else
{
alert('There was a problem with the request.');
}
}
}
// END Function ALERTCONTENTS
// Function CLOSEDIV
function closeDiv()
{
document.getElementById('outerdiv').style.visibility = "hidden";
}
// END Function CLOSEDIV
// Function GET
function get()
{
//alle felder holen und zusammenbauen anhand von id
var poststr =
"name=" + encodeURI( document.getElementById("name").value ) +
"&firma=" + encodeURI( document.getElementById("firma").value ) +
"&strasse=" + encodeURI( document.getElementById("strasse").value ) +
"&plz=" + encodeURI( document.getElementById("plz").value ) +
"&ort=" + encodeURI( document.getElementById("ort").value ) +
"&land=" + encodeURI( document.getElementById("land").value ) +
"&telefon=" + encodeURI( document.getElementById("telefon").value ) +
"&fax=" + encodeURI( document.getElementById("fax").value ) +
"&email=" + encodeURI( document.getElementById("email").value ) +
"&web=" + encodeURI( document.getElementById("web").value ) +
"&woher=" + encodeURI( document.getElementById("woher").value ) +
"&text=" + encodeURI( document.getElementById("text").value );
//hier wird der eigentliche vorgang in gang gesetzt
makePOSTRequest('kontakt.php', poststr);
}
// END Function GET
Der Aufruf schaut jetzt eben wie folgt aus:
Code:
<form action="javascript: get();" >
Jetzt komm ich einfach nicht drauf, warum das ganze nicht klappt?
Das Div wird brav angezeigt, aber die Mail einfach nicht versandt.
Wär wirklich super, wenn ihr da mal drüber schaun könntent.
Lg breakone