Seite 1 von 2
Eine von mehreren Optionen zufällig ausführen - Javascript
Verfasst: 21.01.2009 22:21
von porfavor
Hallo,
stehe vor einem kleinen Problem. Ich habe in einem Head-Tag eines html-dokuments zwei automatische popups.
Ich möchte aber gerne immer nur eines der beiden aufgehen lassen und nicht beide. Das ganze soll per Zufall geschehen.
Wie löse ich das am besten?
Habe bisher nur die math.random funktion gefunden.
Re: Eine von mehreren Optionen zufällig ausführen - Javascript
Verfasst: 21.01.2009 22:46
von Boecki91
Ich habe keine Ahnung von JavaScript aber:
Code: Alles auswählen
if (zufallszahl() >= 0.5)
{
//Popup 1
}
else
{
//Popup 2
}
Je nachdem was da für Zahlen generiert werden, die größtmöglich Zufallszahl / 2 damit man die Mitte hat und eine 50:50 (ok nicht ganz wegen dem = aber das ist hoffentlich nicht so wichtig sonnst lass bei der Mitte nochmal alles zu Fallen

)
Re: Eine von mehreren Optionen zufällig ausführen - Javascript
Verfasst: 21.01.2009 23:33
von porfavor
danke, aber wenn ich das ganze mit php löse habe ich wieder das template problem. In php kann ich die popups ja nicht aufrufen lassen, sondern es muss defakto im head des templates geschiehen. Nun könnte ich zwar die variablen übernehmen aber wie soll ich den window befehl denn dann ausführen?
also per if-befehl wird das dann schon schwer..
ich könnte zwar:
if (zufallszahl () >= 0.5)
{
echo "Text1";
}
else
{
echo "Text2";
Aber wie soll ich da ein zufälliges popup aufrufen lassen?
Hätte doch eine Idee:
if (zufallszahl () >= 0.5)
{
$popup = "window.location...1";
}
else
{
$popup = "window.location...2";
}
und dann eben im template
<script>aktion = $popup;</script>
nur weiß ich nicht, ob JS dann das auch liest, wie html
Re: Eine von mehreren Optionen zufällig ausführen - Javascript
Verfasst: 22.01.2009 01:03
von 4seven
genau. dann aber den code
in die functions.php und dort dann als variable deklarieren
und dann im template
Code: Alles auswählen
<script type="text/javascript">
// <![CDATA[
aktion = {POPUP};
// ]]>
</script>
so muss das böse php in templates nicht aktiviert werden...
Re: Eine von mehreren Optionen zufällig ausführen - Javascript
Verfasst: 22.01.2009 16:41
von porfavor
es geht nicht um phpbb, ist ein eigenes script

Könnte ich zwar in meine functions.php schreiben, sehe dann aber nicht den Sinn, weil ich es einmal brauche.
Re: Eine von mehreren Optionen zufällig ausführen - Javascript
Verfasst: 22.01.2009 17:42
von porfavor
Das hat sich nun erledigt. Danke!
Jetzt wärs nett, wenn mich vielleicht noch jemand zu sessions anleiten könnte.
Ich möchte, dass das Popup nur einmal angezeigt wird und beim Page-Reload nicht noch einmal.
Re: Eine von mehreren Optionen zufällig ausführen - Javascript
Verfasst: 22.01.2009 18:13
von Valerion
http://www.usegroup.de/software/phptuto ... sions.html
(Erster Link bei Google mit dem Stichwörtern PHP+Sessions
Damit dann einfach eine Session starten dann folgenden Code verwenden:
Und dann mit folgendem Code auslesen:
Code: Alles auswählen
if($_SESSION["popup"]==false)
{
$popup=""; //Oder eine beliebige andere Aktion, die dann angezeigt werden soll, wenn das popup schon gezeigt wurde
}
else
{
$popup=((zufälliges PopUp, Code von vorhin))
}
alternativ könntest du in $_SESSION["popup"] auch speichern, welches popup der User sich bereits angeschaut hat und dann entsprechend das andere anzeigen.
Re: Eine von mehreren Optionen zufällig ausführen - Javascript
Verfasst: 22.01.2009 22:30
von porfavor
wenn ich aber das mit der session in einen if-befehl schreibe, wird der ja ausgeführt, weil die session vorhanden ist...
Hab im Moment folgenden Code:
Code: Alles auswählen
$_SESSION["popup"]=false;
$zahl = rand (0,1);
if($_SESSION["popup"]==false)
{
$popup="";
}
elseif ($zahl<=0.5)
{
$popup = "window.open('index.php5?s=41','Veranstaltungen', 'width=250, height=580')";
}
else
{
$popup = "window.open('index.php5?s=42','Angebote', 'width=580, height=250')";
}
Re: Eine von mehreren Optionen zufällig ausführen - Javascript
Verfasst: 24.01.2009 18:03
von Valerion
Code: Alles auswählen
<?php
/************************* KONFIGURATION *************************/
$keine_werbung=true; //Wenn keine_werbung auf true gesetzt wird, dann ist es möglich, dass ab der 3. Seite keine Werbung mehr angezeigt wird, wird es auf false gesetzt, dann wird auf jeder Seite Werbung angezeigt
/************************* KONFIGURATION ENDE *************************/
session_start();
//$zahl = rand (0,1); **Wird nicht mehr benötigt** - Immer in der Reihenfolge erste Werbung - Zweite Werbung
if($_SESSION["last_popup"]==3) //Nur wenn SESSION["last_popup"] auf 3 gestellt ist
{
$popup="";
}
elseif ($_SESSION["last_popup"]!=2 || empty($_SESSION["last_popup"]) //last_popup darf nicht 2 (Sprich diese Werbung) sein
{
$popup = "window.open('index.php5?s=41','Veranstaltungen', 'width=250, height=580')";
if( $_SESSION["last_popup"]==1 && $keine_werbung) $_SESSION["last_popup"]=3;
else $_SESSION["last_popup"]=2;
}
else
{
$popup = "window.open('index.php5?s=42','Angebote', 'width=580, height=250')";
if( $_SESSION["last_popup"]==2 && $keine_werbung) $_SESSION["last_popup"]=3;
else $_SESSION["last_popup"]=1;
}
else
{
$popup = "window.open('index.php5?s=42','Angebote', 'width=580, height=250')";
//Trifft nur zu, wenn last_popup weder auf 1, 2, oder 3 gestellt ist, nur zur Sicherheit
}
Dieser Code wird nun:
Auf der ersten Seite
index.php5?s=41
anzeigen, und auf der zweiten seite
index.php5?s=42
anzeigen und auf der dritten Seite garnichts mehr anzeigen.
Hinweis: Diese Variante funktioniert nur, wenn Cookies aktzeptiert werden, andernfalls wird immer die erste Werbung angezeigt.
Keine Garantie auf Richtigkeit.
Re: Eine von mehreren Optionen zufällig ausführen - Javascript
Verfasst: 25.01.2009 00:07
von porfavor
Also in deinem Code liegen syntaxbedingte Fehler. Ich habe mal versucht, die Schleifen umzubauen, allerdings ist die fehlermeldung unlogisch.
Unexpected "}"...was egtl nicht sein kann, da das dort schon richtig war...aber vielleicht findest du deinen Fehler.
Danke schonmal