Kamerakind
Threadersteller
Dabei seit: 29.11.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 09.12.2009 17:32
Titel PHP Response in Lightbox anzeigen |
|
|
Ich verwende auf meiner Homepage ein Lightbox Script um Div Layer über der normalen Seite anzeigen zu lassen. Unter anderem auch ein PHP Mail Script.
Aufgerufen wird's mit:
Code: | <a href="javascript:void(0)" onclick="document.getElementById('kontakt')
.style.display='block';document.getElementById('fade').style.display='block'"><img src="Bilder/kontakt.jpg" border="0" /></a> |
das Style-Sheet:
Code: |
.black_overlay
{
display: none;
position: absolute;
top: 0%;
left: 0%;
width: 100%;
height: 100%;
background-color: black;
z-index:1001;
-moz-opacity: 0.8;
opacity:.80;
filter: alpha(opacity=80);
}
.white_content
{
display: none;
position: absolute;
top: 10%;
left: 25%;
width: #%;
height: #%;
padding: 16px;
border: 16px solid white;
background-color: black;
background-image: url(Bilder/lefter.jpg);
background-repeat: no-repeat;
background-position: left;
z-index:1002;
overflow: auto;
}
|
dann kommt das PHP Script im Div Layer
Code: | <div id="kontakt" class="white_content">
<div class="einzug">
Schreiben Sie mir eine Mail:<br /><br />
<?php
$mail_to = 'XXXXXX@XXXXXXX';
$from_name=GetParam('fromname');
$from_mail=strtolower(GetParam('frommail'));
$mail_subject=GetParam('mailsubject');
$mail_text=GetParam('mailtext');
$send=GetParam('s');
$err_text='';
if(trim($from_name)=='') $err_text.='Bitte geben Sie Ihren Namen an.<br>';
if(trim($from_mail)=='')
$err_text.='Bitte geben Sie Ihre E-Mail-Adresse an.<br>';
else
if(!ereg('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$',$from_mail))
$err_text.='Bitte geben Sie eine gültige E-Mail-Adresse an.<br>';
if(trim($mail_subject)=='') $err_text.='Bitte geben Sie einen Betreff ein.<br>';
if(trim($mail_text)=='') $err_text.='Bitte geben Sie einen Nachrichtentext ein.<br>';
if(strlen($mail_text)>2000) {
$mail_text=substr($mail_text,0,2000).'... (Text wurde gekürzt!)';
}
$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);
if (($send == '1') && ($err_text != '')) {
echo '<p><big><b>Fehler:</b></big><br>';
echo $err_text.'</p>';
}
if (($send != '1') || ($err_text != '')) {
?>
<form action="<?=GetParam('PHP_SELF','S')?>" method="post">
<table border=0 cellspacing=2 cellpadding=0 width=100%>
<tr><td nowrap align=right>Ihr Name:</td><td> </td>
<td width=100%><input type="text" name="fromname" size=50 maxlength=120 value="<?=$from_name?>" /></td></tr>
<tr><td nowrap align=right>Ihre E-Mail-Adresse:</td><td></td>
<td width=100%><input type="text" name="frommail" size=50 maxlength=120 value="<?=$from_mail?>" /></td></tr>
<tr><td nowrap align=right>Betreff:</td><td></td>
<td width=100%><input type="text" name="mailsubject" size=50 maxlength=120 value="<?=$mail_subject?>" /></td></tr>
<tr><td nowrap align=right valign=top>Text:</td><td></td>
<td width=100%><textarea cols=40 rows=10 name="mailtext"><?=$mail_text?></textarea></td></tr>
<tr><td></td><td></td><td>
<input type="hidden" value="1" name="s" />
<input type="submit" value="Nachricht versenden" name="submit" />
</td></tr>
</table>
</form>
<?php
} else {
$header="From: $from_name <$from_mail>\n";
$header.="Reply-To: $from_mail\n";
$header.="X-Mailer: PHP-ContactForm-Script\n";
$header.="Content-Type: text/plain";
$mail_date=gmdate('D, d M Y H:i:s').' +0000';
$send=0;
if(@mail($mail_to,$mail_subject,$mail_text,$header))
{
echo "<p><b>Die Nachricht wurde erfolgreich abgesendet.</b></p>";
echo "<p><a href=\"".GetParam('PHP_SELF','S')."?from_name=$from_name&from_mail=$from_mail\">Zurück zum Formular</a></p>";
}else{
echo "<p><b>Beim Versenden der Nachricht ist ein Fehler aufgetreten!</b></p>";
echo "<p><a href=\"".GetParam('PHP_SELF','S')."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
echo urlencode($mail_text)."\">Zurück zum Formular</a></p>";
}
}
function GetParam($ParamName, $Method = 'P', $DefaultValue = '') {
if ($Method == 'P') {
if (isset($_POST[$ParamName])) return $_POST[$ParamName]; else return $DefaultValue;
} else if ($Method == 'G') {
if (isset($_GET[$ParamName])) return $_GET[$ParamName]; else return $DefaultValue;
} else if ($Method == 'S') {
if (isset($_SERVER[$ParamName])) return $_SERVER[$ParamName]; else return $DefaultValue;
}
}
?>
|
Wenn man nun eine Email verfasst wird die gesamte index.php neu geladen und der Layer verschwindet. Die Mail kommt bei mir an. Klickt man nun erneut auf Kontakt sieht man die Response Mitteilung "Ihr Nachricht wurde versandt". Könnt Ihr gerne auch selber ausprobieren: fotograf-in-leipzig.de
Jetzt meine Frage: Wie kann ich es erreichen das die Seite sich nicht neu lädt, sondern sich nur der Div Layer mit der Response Mitteilung erneuert?
Vielen Dank.
Zuletzt bearbeitet von Kamerakind am Mi 09.12.2009 17:34, insgesamt 1-mal bearbeitet
|
|