Eine von mehreren Optionen zufällig ausführen - Javascript

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
porfavor
Mitglied
Beiträge: 834
Registriert: 23.08.2006 00:35
Wohnort: Tuttlingen
Kontaktdaten:

Eine von mehreren Optionen zufällig ausführen - Javascript

Beitrag 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.
Lebe dein Leben solange du kannst.

Jugendgemeinderat-Tuttlingen
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Re: Eine von mehreren Optionen zufällig ausführen - Javascript

Beitrag 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 :wink: )
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Benutzeravatar
porfavor
Mitglied
Beiträge: 834
Registriert: 23.08.2006 00:35
Wohnort: Tuttlingen
Kontaktdaten:

Re: Eine von mehreren Optionen zufällig ausführen - Javascript

Beitrag 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
Lebe dein Leben solange du kannst.

Jugendgemeinderat-Tuttlingen
4seven
Mitglied
Beiträge: 5869
Registriert: 21.04.2007 06:18

Re: Eine von mehreren Optionen zufällig ausführen - Javascript

Beitrag von 4seven »

genau. dann aber den code

Code: Alles auswählen

$popup

in die functions.php und dort dann als variable deklarieren

Code: Alles auswählen

'POPUP'  => $popup, 
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...
Benutzeravatar
porfavor
Mitglied
Beiträge: 834
Registriert: 23.08.2006 00:35
Wohnort: Tuttlingen
Kontaktdaten:

Re: Eine von mehreren Optionen zufällig ausführen - Javascript

Beitrag 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.
Lebe dein Leben solange du kannst.

Jugendgemeinderat-Tuttlingen
Benutzeravatar
porfavor
Mitglied
Beiträge: 834
Registriert: 23.08.2006 00:35
Wohnort: Tuttlingen
Kontaktdaten:

Re: Eine von mehreren Optionen zufällig ausführen - Javascript

Beitrag 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.
Lebe dein Leben solange du kannst.

Jugendgemeinderat-Tuttlingen
Valerion
Mitglied
Beiträge: 70
Registriert: 11.08.2006 17:30

Re: Eine von mehreren Optionen zufällig ausführen - Javascript

Beitrag 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:

Code: Alles auswählen

$_SESSION["popup"]=false; 
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.
Mit Freundlichen Grüßen, Valerion.
Administrator von http://www.aquarion.org
Bitte postet PHP-Codes immer immer mit

Code: Alles auswählen

 und nicht mit [code]!
Benutzeravatar
porfavor
Mitglied
Beiträge: 834
Registriert: 23.08.2006 00:35
Wohnort: Tuttlingen
Kontaktdaten:

Re: Eine von mehreren Optionen zufällig ausführen - Javascript

Beitrag 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')";
}
Lebe dein Leben solange du kannst.

Jugendgemeinderat-Tuttlingen
Valerion
Mitglied
Beiträge: 70
Registriert: 11.08.2006 17:30

Re: Eine von mehreren Optionen zufällig ausführen - Javascript

Beitrag 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.
Mit Freundlichen Grüßen, Valerion.
Administrator von http://www.aquarion.org
Bitte postet PHP-Codes immer immer mit

Code: Alles auswählen

 und nicht mit [code]!
Benutzeravatar
porfavor
Mitglied
Beiträge: 834
Registriert: 23.08.2006 00:35
Wohnort: Tuttlingen
Kontaktdaten:

Re: Eine von mehreren Optionen zufällig ausführen - Javascript

Beitrag 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
Lebe dein Leben solange du kannst.

Jugendgemeinderat-Tuttlingen
Antworten

Zurück zu „Coding & Technik“