mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 13:34 Benutzername: Passwort: Auto-Login

Thema: PHP Response in Lightbox anzeigen vom 09.12.2009

Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP Response in Lightbox anzeigen
Autor Nachricht
Kamerakind
Threadersteller

Dabei seit: 29.11.2008
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 09.12.2009 18:32
Titel

PHP Response in Lightbox anzeigen

Antworten mit Zitat Zum Seitenanfang

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>&nbsp;</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 18:34, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Ähnliche Themen response von web-service mit simplexml aufrufen, wie?
Lightbox
Lightbox 2
Undokumentierter Bug in der Lightbox?
Kontakform via Lightbox
Lightbox und ScrollPane
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.