tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
1376
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    tantebootsy tantebootsy ist offline Mitglied Gold
    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ß,
    Micha
    Geändert von tantebootsy (25.10.04 um 19:53 Uhr)
     

  2. #2
    Avatar von split
    split split ist offline Mitglied Platin
    Registriert seit
    Jan 2004
    Ort
    München
    Beiträge
    574
    Im Form-Tag musst du mit Hilfe eines onSubmit()-Events erstmal dein Popup öffnen:
    Code :
    1
    
    <form ... onSubmit="window.open('', [b]'target (Ziel)'[/b], 'width=200,height=200');">
    Dabei ist der zweite Parameter ("target" -> "Ziel") besonders wichtig. Dann musst du im Form-Tag noch ein Ziel angeben. Bsp.:
    Code :
    1
    
    <form action="datei.php" [b]target="popup"[/b] method="post" onSubmit="window.open('', [b]'popup'[/b], 'width=200, height=400');">
    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 ).
     
    Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut

  3. #3
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    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
     
    electromusic
    webdesign
    www.dirtycat.ch

  4. #4
    tantebootsy tantebootsy ist offline Mitglied Gold
    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
     

  5. #5
    webdesign webdesign ist offline Mitglied Silber
    Registriert seit
    Aug 2004
    Ort
    Basel
    Beiträge
    82
    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
     
    electromusic
    webdesign
    www.dirtycat.ch

  6. #6
    tantebootsy tantebootsy ist offline Mitglied Gold
    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

  1. neue Seite öffnen mit css?
    Von zero_cold im Forum Javascript & Ajax
    Antworten: 7
    Letzter Beitrag: 30.07.07, 12:12
  2. mit header neue Seite öffnen
    Von ulf123 im Forum PHP
    Antworten: 2
    Letzter Beitrag: 03.06.06, 14:00
  3. Neue Seite autmatisch öffnen
    Von Lukasz im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 01.09.03, 02:54
  4. Seite nach Submit in anderem Frame öffnen?
    Von pirate man im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 30.05.02, 17:07
  5. Neue Seite in Tabellenspalte öffnen
    Von Sebastian Wramba im Forum PHP
    Antworten: 6
    Letzter Beitrag: 27.10.01, 23:50