Frage von einnuesschen, 46

PHP - Nach "header('Location: $url')" eine Div laden lassen?

Ist es möglich mit diesem PHP-Skript nach dem Refresh der Page eine "versteckte" DIV anzeigen zu lassen?

Beispiel: Eine "Vielen Dank"-Div

<?php

$zieladresse = 'meine@mail.de';

$absenderadresse = $_POST['Email'];

$absendername = $_POST['Name'];

$urlDankeSeite = 'danke.html';

$trenner = ":\n<br />"; // Doppelpunkt + Tabulator

$trenner2 = "<br /><br />"; // Break

if ($_SERVER['REQUEST_METHOD'] === "POST") {

    $header = array();
    $header[] = "From: ".mb_encode_mimeheader($absendername, "utf-8", "Q")." <".$absenderadresse.">";
    $header[] = "MIME-Version: 1.0";
    $header[] = "Content-type: text/html; charset=utf-8";
    $header[] = "Content-transfer-encoding: 8bit";
    
    $mailtext = "";

    foreach ($_POST as $name => $wert) {
        if (is_array($wert)) {
            foreach ($wert as $einzelwert) {
                $mailtext .= "<b>".$name."</b>".$trenner.$einzelwert.$trenner2;
            }
        } else {
            $mailtext .= $name.$trenner.$wert.$trenner2;
        }
    }

    mail(
        $zieladresse, 
        "From: " .mb_encode_mimeheader($absendername, "utf-8", "Q")." - [".$absenderadresse."]", 
        $mailtext,
        implode("\n", $header)
    ) or die("Die Mail konnte nicht versendet werden.");
    header("Location: $urlDankeSeite");
    
    exit;
}

header("Content-type: text/html; charset=utf-8");
?>
Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von xGlumi, 33

Ruf die neue Seite halt mit nem GET Parameter auf, und diese interpretiert es dann und gibt sas Danke-Div aus.

MFG xGlumi

Kommentar von einnuesschen ,

Bin erst ganz neu bei PHP, wie genau mache ich das? schon im formular? 

Kommentar von xGlumi ,

deine danke.html 1. wechselst du die zu einer .php datei 2. rufst du die jetzt mit dem header nichtmehr mit: danke.html auf sondern mit: danke.php?success=1 in der danke.php Checkst du jetzt: if (isset($_GET["success"]) && $_GET["success"] == 1) und wenns wahr ist hauste dein div raus. sry dafür dass ich den code nicht im code Tag drin habe(bin am handy) deawegen auch nur dieser vereinfachte weg weil mich die Handytastatur sons noch umbringt xD MFG xGlumi

Kommentar von einnuesschen ,

wie genau "check" ich das? >_<

Kommentar von xGlumi ,

In die PHP-Datei eine IF-Schleife mit der oben genannten Bedingung, und dort drin dann dein div rein. Die Antwort ändert sich leider nicht ^^ Es steht schon exakt da was du tun musst. Wenn du nicht weiss wie das zu bewerkstelligen ist dann google mal nach PHP If Conditions, dann solltest du es hinbekommen :) kann dir wie gesagt leider keinen fertigen code schreiben, wegen dem Handy.. die ganzen sonderzeichen nerven am Handy :D MFG xGlumi

Kommentar von einnuesschen ,

leider kenn ich mich nicht gut genug aus um das umzusetzen Dx

Kommentar von TanteHolger ,

Ganz einfach. Du änderst folgende Zeile in deinem Script

$urlDankeSeite = 'danke.html';

zu

$urlDankeSeite = 'danke.php?success=1';

und in der danke.php trägst Du folgendes ein.

<?php if(isset($_GET["success"]) && $_GET["success"] == 1){echo '<div style="visibility:hidden;">Danke oder so.</div>';}
Kommentar von einnuesschen ,

vielen dank euch beiden hab es tatsächlich geschafft :)

Kommentar von einnuesschen ,

den code

<?php if(isset($_GET["success"]) && $_GET["success"] == 1){echo '<div style="visibility:hidden;">Danke oder so.</div>';} ?>

hab ich nun in meiner index.php drin und nach dem versenden der mail wird man wieder auf die selbe seite geleitet mit einer "danke-div" :)

Kommentar von xGlumi ,

super, freut mich dass es jetzt bei dir klappt :)

Antwort
von poldi1405, 8

Entweder über den Referer (wenn der passt: div anzeigen)

Über GET (wenn vorhanden div anzeigen)

Eine Session Variable setzen (meiner Meinung nach am besten, wenn gesetzt: anzeigen)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten