Bestätigung per Popup

StefanR

Erfahrenes Mitglied
Hy,

ich habe da mal ne Frage und zwar, habe ich mir son Formularscript in PHP gedownloadet, was mir auch ganz gut gefällt, nur leider werden die Bestätigungen, also das die Mail verschickt wurde auf einer neuen Seite gezeigt, was ganz schön stört, deshalb wollte ich das in einem POPUP haben würde das gehen hier mal der Code für die Bestätigung.
PHP:
<?php
}
else
 {
  if (empty($email)) { ?><p><b>Danke!</b><br />Nachricht erfolgreich
 versendet. Allerdings wurde keine E-Mail-Adresse angegeben, ich kann
 also nicht antworten.</p><?php }
  else { ?><p><b>Danke!</b><br />Nachricht erfolgreich
 versendet.</p><?php }
 }
?>
 
Das kannst du mit Javascript machen, entweder du lädst das Popup im Bestätigungsteil, oder du modifizierst dein <form> tag (beim Formular HTML Text) so, dass das Script erst im Popup ausgeführt wird und du die Variablen übergibst.
 
Hallo,

ich habe auch einen Formmailer und möchte, das sich nach dem Versenden ein popup öffnet, jedoch bekomme ich es nicht gebaken. Kann mir vielleicht mal einer von euch weiterhelfen? Dies soll nur geschehen, wenn kein Fehler auftrat
Hier mal der Code:

PHP:
     <?php
     
     $mail_to="***@***.de";
     // *************************************
     
     $from_name = $_POST['from_name'];
     $from_mail = $_POST['from_mail'];
     $mail_subject = $_POST['mail_subject'];
     $mail_text = $_POST['mail_text'];
     
     if($_POST['send']=="1") {
     	if(trim($from_name)==""){
     		$errors []= array("errormessage" =>"Bitte gib Deinen Namen an.");
     		}else if(trim($from_mail)==""){
 			$errors []= array("errormessage" =>"Bitte gib Deine E-Mail-Adresse an.");
 		}else if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-kz]{2,6})$",$from_mail)){
 			$errors []= array("errormessage" =>"Bitte gib eine gültige E-Mail-Adresse an.");
     		}else if(trim($mail_subject)==""){
 			$errors []= array("errormessage" =>"Bitte gib einen Betreff ein.");
     		}else if(trim($mail_text)==""){
 			$errors []= array("errormessage" =>"Bitte gib einen Nachrichtentext ein.");
     		}else if(strlen($mail_text)>1000) {
     		  $mail_text=substr($mail_text,0,1000)."... (Text wurde gekürzt!)";
     	}else{
     		$from_name=str_replace(chr(34),"''",$from_name);
     		$mail_subject=str_replace(chr(34),"''",$mail_subject);
     		$from_name=stripslashes($from_name);
     		$from_mail=stripslashes($from_mail);
     		$mail_subject=stripslashes($mail_subject);
     		$mail_text=stripslashes($mail_text);
     		$header.="From: $from_name <$from_mail>\n ";
     		$header.="Reply-To: $from_mail\n";
     		$header.="X-Mailer: PHP-FormMailer (www.***)\n";
     		$header.="Content-Type: text/plain";
     		$header.="Von der Seite: www.***\n";
     		$mail_date=gmdate("D, d M Y H:i:s")." GMT";
     	  $send=0;
     	  if(@mail($mail_to,$mail_subject,$mail_text,$header))
     	  {
     		$errors []= array("errormessage" =>"Danke deine Mail wurde gesendet.");
     		//echo "javascript:popup_window('danke.html', 300, 320, 'movie', ',scrollbars=no' ); return false;";
   // Hier soll dann erst irgendwie das popup geöffnet werden!
     		header("location: index.php?mod=willkommen&danke");
     		exit;
     	  }else{
 		$errors []= array("errormessage" =>"Beim Versenden der Mail ist ein Fehler	aufgetreten<br>Ich leite dich noch einmal auf das Formular.");
     		header('location: index.php?mod=kontakt');
     		exit;
     	  }
     	}
     }
     	$inhalt = parse_inhalt("./kontakt.html");
     	$menue = parse_inhalt("./menue.html");
     ?>

Ich hoffe mir kann jemand helfen! Habe schon im html Teil beim submit button ein onClick eingefügt, jedoch geht dann das olle popup immer mit auf, egal ob gesendet wurde oder nicht!
Habe es irgendwie schon (wie ihr sehen könnt) mit echo probiert, aber irgendwie klappt das alles nicht!

Gruß Atzi
 
Also das geht so:

1. Ihr setzt beim BODY-TAG ein php-echo, z.B. echo $popup.
2. Jetzt wird im Script zuerst die Variable $popup auf null gesetzt: $popup="";
3. Nun müsst ihr noch mit JavaScript im HEAD-TAG ein Dankeschön-Fenster und ein Fehler-Fenster scripten.
4. Jetzt könnt ihr alles verbinden. Das heisst: Ihr könnt jetzt in PHP eine Fehlerabfrage mit if(blabla) oder so machen und wenn die Daten falsch eingegeben wurden, gebt ihr der Variable $popup ein anderer Wert, z.B. $popup="onload='danke()'"; oder bei der richtigen Eingabe z.B. $popup="onload='fehler()'"; (das heisst, es müssen im header im Javascript zwei popup-Fenster in Funktionen definiert sein mit den Namen danke() und fehler() ).

Somit erscheint ein Popup-Fenster, wenn jemand falsche Daten eingibt, oder die richtigen Daten.

Ich hoffe ich konnte euch helfen.

Gruss Jonas
 
Angesicht von Popupblockern, welche seit SP2 nun wirklich sehr verbreitet sind,
ist es, mit Verlaub, ziemlicher Unsinn, seine Informationen in solchen Popupfenstern präsentieren zu wollen.
 
was ich gerade geschrieben hab war Quatsch -> deshalb wieder gelöscht.

Das mit dem onLoad im body tag ist wirklich Unsinn ...
 
Zuletzt bearbeitet:
Sven Mintel hat gesagt.:
Angesicht von Popupblockern, welche seit SP2 nun wirklich sehr verbreitet sind,
ist es, mit Verlaub, ziemlicher Unsinn, seine Informationen in solchen Popupfenstern präsentieren zu wollen.
Vielen Dank für deinen konstruktiven Lösungsansatz und der zum Thema passenden Antwort.
Wenn dies mein Wunsch ist, dann habe ich mir sicherlich über Sinn und Unsinn über Popups schon Gedanken gemacht und möchte mit Sicherheit keine Moralpredigt von Dir bekommen.
 
Zurück