ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
1376
1376
EMPFEHLEN
-
25.10.04 19:51 #1
- Registriert seit
- Jun 2003
- Beiträge
- 163
Hi,
nachdem ich nun wieder lange genug rumgesucht habe und keine antwort fand hier ne frage die für nen PHP-Prof kein Problem sein dürfte, schätze ich jetzt mal:
ich habe nach diesem tutorial ein Kontaktformular eingerichtet, was jetzt auch funktioniert.
Nun öffnet das Script aber eine völlig unformatierte Seite, wenn die Nachricht verschickt / nicht verschickt wurde.
Ich hätte gern, dass entweder ein kleines PopUp aufgeht und den User darüber informiert, ob das Versenden erfolgreich war.
Hier im Forum habe ich gesehen, dass das mit echo '<script language=javascript> window.open(......)</script> gehen soll, funktioniert aber nicht.
Oder dass nach dem Verschicken unter dem Formular eine Zeile erscheint wie "erfolgreich versendet" + die Felder des Formulars wieder leer sind oder eben "überprüfen Sie ihre Angaben nochmal", wenn nicht erfolgreich + die Felder sind noch ausgefüllt.
Ich kenne mich überhaupt nicht mit PHP aus und habe leider keine passende Lösung finden können.
Kann mit einer von Euch weiterhelfen? Bidde, bidde, bidde!
Gruß,
MichaGeändert von tantebootsy (25.10.04 um 19:53 Uhr)
-
Im Form-Tag musst du mit Hilfe eines onSubmit()-Events erstmal dein Popup öffnen:
Dabei ist der zweite Parameter ("target" -> "Ziel") besonders wichtig. Dann musst du im Form-Tag noch ein Ziel angeben. Bsp.:Code :1
<form ... onSubmit="window.open('', [b]'target (Ziel)'[/b], 'width=200,height=200');">Wird das Formular abgeschickt, öffnet sich ein neues Fenster in welches dann das Formular gepostet wird. Da kannst du dann auch normale Fehlermeldungen per PHP ausgeben lassen ( echo()-Befehl ).Code :1
<form action="datei.php" [b]target="popup"[/b] method="post" onSubmit="window.open('', [b]'popup'[/b], 'width=200, height=400');">Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut
-
Hallo
Es gibt auch eine andere Möglichkeit:
Du kannst beim Body-Tag eine php variable einsetzen: <? echo("$onload")?>
Diese Variable setzt du am Anfang auf null, dass heisst: $onload = "";
Wenn jetzt der Benutzer etwas falsch eingegeben hat und auf submit drückt, kannst du der Variable $onload einen anderen Wert geben, z.B.: $onload='onload="error()"';
Jetzt musst du nur noch im head Bereich ein Popup Fenster mit JavaScript definieren, in welchem du dann die Fehlermeldung ausgeben kannst.
Wenn das Formular gesendet wurde, kannst du der Variable $onload dann einfach ein anderes PopUp Fenster zuweisen, wie z.B.: $onload='onload="danke()";
Ich hoffe, dass ich dir weiter helfen konnte. Ist zwar eine recht komplizierte Lösung, funktioniert aber
Gruss Jonas
-
26.10.04 07:14 #4
- Registriert seit
- Jun 2003
- Beiträge
- 163
Morgen!
@split: Danke, aber da ich HTML strict verwende, kann ich das Attribut "target" leider nicht verwenden. Außerdem wäre ja immer das gleiche Fenster aufgegangen, egal, ob die Mail nun versendet wurde oder nicht.
@webdesign: Deine Lösung hört sich vielversprechend an, hat aber noch nicht ganz funktioniert. Ich bekome immer einen "parse error in line 53", also dort, wo das Script eigentlich schon zu Ende ist... worauf deutet das hin?
Hier mein Code, wie er jetzt aussieht, deine Vorschläge sind fett:
<html>
<head>
<title>Kontakt-Formular</title>
<script type="text/javascript">
<!--
function error()
{ window.open('error.htm','fehler');
}
function danke()
{ window.open('danke.htm','ok');
}
//-->
</script>
</head>
<body <? echo("$onload")?> >
<?php
$onload = "";
if($abschicken)
{
if(empty($name) || empty($email) || empty($text))
{
$onload='onload="error()"';
}
else
{
while(list($feld,$wert)=each($HTTP_POST_VARS))
{
if($feld!="abschicken")
{
$mailnachricht.=ucfirst($feld).": $wert\n";
}
}
$mailnachricht.="\nDatum/Zeit: ";
$mailnachricht.=date("d.m.Y H:i:s");
$mailbetreff="Betreff: ";
$mailbetreff.=$HTTP_POST_VARS[betreff];
mail("mb@mistaboo.de", $mailbetreff, $mailnachricht, "From: $email");
$onload='onload="danke()";
}
}
else
{
echo "Ein Fehler ist aufgetreten.";
}
?>
</body>
</html>
Ich sehe, dass man mit PHP anscheinend sehr viel machen kann, was mich schon begeistert, leider habe ich z.Zt. nicht die Zeit / den Nerv mich da reinzuarbeiten. Könntest Du mir also nochmal helfen, wo der Fehler liegt?
Danke,
Micha
-
Ich weiss nicht ganz genau was bei dir falsch ist, vielleicht hier:
$mailnachricht.="\nDatum/Zeit: ";
$mailnachricht.=date("d.m.Y H:i:s");
$mailbetreff="Betreff: ";
$mailbetreff.=$HTTP_POST_VARS[betreff];
mail("mb@mistaboo.de", $mailbetreff, $mailnachricht, "From: $email");
$onload='onload="danke()";
Versuche es mal so:
$date=' date("d.m.Y H:i:s")';
$mailnachricht='\nDatum/Zeit:"$date"';
$mailbetreff='Betreff:"$HTTP_POST_VARS[betreff]" ';
mail("mb@mistaboo.de", $mailbetreff, $mailnachricht, "From: $email");
Hier hast du noch ein ' vergessen.
$onload='onload="danke()"';
Vielleicht lag es daran.
Ich hoffe ich konnte dir helfen. Leider habe ich zur Zeit auch nicht sehr viel Zeit und darum kann ich dir nicht versprechen in den nächsten par Tagen schnell zu antworten.
Gruss Jonas
-
30.10.04 20:45 #6
- Registriert seit
- Jun 2003
- Beiträge
- 163
..War okay, dass Du keine Zeit mehr hattest, ich hab dann im PHP-Forum nachgefragt. Da hat mir einer einen Link zu diesem Tutorial gegeben. Is sehr genau beschrieben und wunderbar!
Danke für die Hilfe,
MIcha
Ähnliche Themen
-
neue Seite öffnen mit css?
Von zero_cold im Forum Javascript & AjaxAntworten: 7Letzter Beitrag: 30.07.07, 12:12 -
mit header neue Seite öffnen
Von ulf123 im Forum PHPAntworten: 2Letzter Beitrag: 03.06.06, 14:00 -
Neue Seite autmatisch öffnen
Von Lukasz im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 01.09.03, 02:54 -
Seite nach Submit in anderem Frame öffnen?
Von pirate man im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 30.05.02, 17:07 -
Neue Seite in Tabellenspalte öffnen
Von Sebastian Wramba im Forum PHPAntworten: 6Letzter Beitrag: 27.10.01, 23:50





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren