Layer Popup

Hi,
wie kriegt man am besten einen Layer Popup hin?
Anwendungsgebiet: Falls eine Session Variable in PHP nicht besetzt ist, sodass ein Layer PopUp erscheint.

Gruß
Stenz

Geht es noch ungenauer?
Das klingt wie: Wie kriege ich am besten Grün hin?

HTML DIV absolut positionieren?

Ok, sorry, zB bei GROUPON - Gutschein Deal: 70% Rabatt für Restaurant, Wellness, Sport uvm.
wenn man seine Cookies und Cache alles löscht, hat ja der Server von Groupon keine Informationen mehr, aus welcher Stadt der User kommt.
Dann erscheint eben dieser Layer PopUp, wo man dann seine Stadt aussuchen soll.
Siehe Bild
http://imageshack.us/f/19/16189642.png/

Hoffe das man diesmal versteh was ich meine :smiley:
Das man das mit einer IF Anweisung per PHP überprüfen kann ist mir klar.
[PHP]<?php
$stadt= $_SESSION[‚stadt‘];

        if ($stadt== "") {
            echo "Stadt aussuchen"; // Hier soll dann der Code für dieses LayerPopUp sein
        }
    ?>[/PHP]gruß

stenz

naja… du musst doch nur eine Absolute Ebene mit 100% höhe und breite definieren, die einen unglaublich hohen z-index hat… da setzt du dann ein teilweise Durchsichtiges Bild in den BG. (mit gimp ein kleines bild erstellen und dann die transparenz auf deine gewüschte prozentzahl stellen)
zu schluss erstellst du dann wie die Seite im hintergrund ein Fenster, in dem dann das Dropdownmenue zum stadtwählen drin ist.

den code dafür fügst du dann einfach in deinen echo""; ein und fertig :wink:

hoffe ich konnte helfen… wenns ne einfachere methode gibt, würd ich sie auch gern wissen… mach das bis jetz immer so ^^

Ok, habs verstanden.
Hab jetzt glaub ich ein Problem, welches sicher schon öfters vorkam.
Nämlich hab ich wie oben beschrieben auch dieses Dropdownmenü gemacht, falls keine Stadt ausgewählt wurde.
Es klappt auch das ich die Stadt aussuchen kann und das der Server das auch mitbekommt.
Jedoch beim Reload der Seite, vergisst mein Code die Auswahl und die Leier geht von vorne los.

[PHP]

<?php $stadt= $_GET['stadt']; $_SESSION['stadt'] = $ilce; if ($stadt== "") { echo "Stadt aussuchen"; echo ""; echo ""; echo "Berlin"; echo "Brandenburg"; echo ""; echo ""; echo ""; } else {echo $stadt;} ?>

[/PHP]
ob POST oder GET macht kein Unterschied, die gleiche Geschichte.

gruß stenz

Du musst natürlich nach dem Abschicken des Formulars den Wert, der vom Dropdown kommt, prüfen und in die Session abspeichern. Machst du das? Der Code dieser Routine ist wichtig, poste den bitte mal =)

Meinst du sowas?
[PHP]
<?php
$stadt= $_POST[‚stadt‘];
if(!isset($stadt)){
$stadt= „“;
}
$_SESSION[‚stadt‘] = $stadt;

        if ($stadt== "") {
            echo "Stadt aussuchen";
            echo "<form action='' method='post'>";
                echo "<select name='stadt'>";
                    echo "<option value='berlin'>Berlin</option>";
                    echo "<option value='brandenburg'>Brandenburg</option>";
                    echo "<input type='submit' name='' />";
                echo "</select>";
            echo "</form>";
        }
        else {echo $stadt;}
    ?>

[/PHP]

Ich verstehs echt nicht mehr, wenn ich eine andere Seite bei „form action“ aufrufe mit dem Code und von der Seite wieder auf die Seite mit dem Form wechsel per Link,
ist die Variable verschwunden. :S
[PHP]
<?php $stadt= $_POST['stadt']; if(!isset($stadt)){ $stadt= ""; } $_SESSION['stadt'] = $stadt; ?>
abc
[/PHP]

Erstens musst du die Session erstmal mit session_start(); initialisieren.

Zweitens ist deine Prüfung falsch:
[PHP]$stadt = $_POST[‚stadt‘] // was ist, wenn $_POST[‚stadt‘] nicht gesetzt ist?
if(!isset($stadt)){ // $stadt ist immer gesetzt, weil du es oben setzt!
$stadt= „“;
}
[/PHP]

Wie wärs lieber mit:
[PHP]<?php
session_start();

if(isset($_POST[‚stadt‘]) && $_POST[‚stadt‘] > ‚‘) $_SESSION[‚stadt‘] = $_POST[‚stadt‘];

?>[/PHP]

index.php
[PHP]

<?php session_start(); ?> Kupon <?php $ilce = $_POST['ilce']; if(isset($_POST['ilce']) && $_POST['ilce'] > '') $_SESSION['ilce'] = $_POST['ilce']; $_SESSION['ilce'] = $ilce;
        if ($ilce == "") {
            echo "İlçe seçiniz";
            echo "<form action='' method='post'>";
                echo "<select name='ilce'>";
                    echo "<option value='adalar'>Adalar</option>";
                    echo "<option value='arnavutköy'>Arnavutköy</option>";
                    echo "<input type='submit' name='' />";
                echo "</select>";
            echo "</form>";
        }
        else {echo $ilce;}
    ?>
    <a href="newsletter.php">Kupon</a>
</body>
[/PHP]newsletter.php [PHP] <?php session_start(); ?> Kupon
<body>
    <?php
        $ilce = $_POST['ilce'];
        if(!isset($ilce)){
            $ilce = "";
        }
        $_SESSION['ilce'] = $ilce;
        $ilce = $_SESSION['ilce'];
        echo $ilce;            
    ?>
    <a href="index.php">Kupon</a>
</body>
[/PHP]Hoffe das man mir jetzt besser helfen kann

HABE ES GELÖST
War doch irgendwie gestern durch den Wind. :slight_smile: Also es war doch irgendwie dumm jedesmal, $_SESSION[‚xyz‘] mit der POST Variable zu verbinden, denn beim wechsel der Seiten, sowie neu nachladen wurde ja kein POST verwendet. Mein Lösung sieht so aus.

  1. Überprüfen, ob die Variable $_SESSION[‚xyz‘] überhaupt existiert und ob es ein Inhalt anzubieten. (Danke an Trimmer)
    Falls ja, dann wurde nichts eingeblendet, falls $_SESSION[‚xyz‘] nicht besetzt war wurde.
  2. $_SESSION[‚xyz‘] = $_POST[‚xyz‘] und ein entsprechendes Formular eingeblendet.

Code
[PHP]
<?php
if(isset($_SESSION[‚userName‘]) && $_SESSION[‚userName‘] > ‚‘){
echo "

Hallo " . $_SESSION[‚userName‘] . „,“;
}
else {
$_SESSION[‚userName‘] = $_POST[‚username‘];
echo "

Hallo " . $_SESSION[‚userName‘] . „,“;

            echo "<form action='' method='post'>";
                echo "<input type='text' name='username' />";
                echo "<input type='submit' name='' />";
            echo "</form>";    
        }
    ?>

[/PHP]

Habe mich wohl zu früh gefreut wie ich jetzt sehe, wird beim betätigen des Submits, das Formular nicht geschlossen, erst beim wiederholten senden des Formulars, wird das Formular geschlossen.
Seht selbst. :slight_smile:
Kupon