An-Aus-Schalter im Webfront für Variable

Hallo,

ich stehe gerade völlig auf dem Schlauch. Banales Problem: Ich möchte im Webfront einen Schalter An-Aus (beide nebeneinander) anzeigen, um damit eine Variable X (boolean) auf true bzw. false zu schalten.
Wenn ich für den Schalter eine Variable neu anlege, habe ich ja kein Standard-Profil ~Switch, das ich bei manchen Instanzen automatisch bekomme. Sicher ein Denk- oder Verständnisfehler. Muss ich ein Skript anlegen und wenn ja, wie muss das aussehen?

Mit der Suchfunktion im Forum bin ich nicht weitergekommen, wahrscheinlich zu banal.

Danke & Gruß

Ecoli

Nichts leichter als das sprach …

<?
$VarSwitchID = 38850 /*[Test\TestBoolSchalten\TestBoolSchalten2]*/ ; // ID der Boolvariable
$VarSwitchVal = GetValue ($VarSwitchID);

if ($VarSwitchVal == true)
{
SetValue ($VarSwitchID, 0);
// Code zum ausschalten
//echo " ist jetzt ausgeschaltet";
}

if($VarSwitchVal == false)
{
SetValue ($VarSwitchID, 1);
// Code zum einschalten
//echo "ist jetzt eingeschaltet";
}
?>

Deiner Bool-Variable o.g. Script als Actionscript (unter der Profilauswahl eigene Aktion) eintragen. Im Script noch die ID der Varible anpassen.

Hallo Wolfgang,

cool, funktioniert, vielen Dank!

Gruß Ecoli

Hallo Wolfgang,

müßte bei der 2. IF bedingung nicht ein ELSE stehen?

Grüße, Gerhard

Abend Gerhard!

Beide Schreibweisen sind möglich… IF und IF oder IF und ELSE… In beiden Fällen kommt am Ende das gleiche Ergebnis raus…viele Wege führen nach Rom :slight_smile:

Beispiel 1:

Variable kann TRUE oder FALSE sein…

if ($wert == true)
{
echo „true“;
}
if ($wert == false)
{
echo „false“;
}

IST GENAU DAS GLEICHE WIE

if ($wert == true)
{
echo „true“;
}
else
{
echo „false“;
}

Weil die Variable kann nur TRUE oder FALSE haben… Anders wäre es z.B. bei einer Integer Variable, diese kann nicht nur 0 oder 1 sein, sonder auch 2,3,4,5,6, … Da wäre if wert == 0 immer gültig bei „0“, mit if wert == 1, wäre nur „1“ gültig… bei einem if wert == 0 und dann einem else, wäre für else 1,2,3,4,5,… gültig…

Beispiel 2:

Variable kann 0,1,2,3,4,5,… sein…

if ($wert == 0)
{
echo „0“;
}
if ($wert == 1)
{
echo „1“;
}
if ($wert == 2)
{
echo „2“;
}
if ($wert == 3)
{
echo „3“;
}
usw usw usw

ANDERS IST ES DANN MIT ELSE

if ($wert == 0)
{
echo „0“;
}
else
{
echo „1,2,3,4,5,…“;
}

Man könnte auch noch „elseif“ verwenden, aber das führt jetzt ein wenig zu weit :smiley: Bei Interesse hilft Google dir aber sicher noch ein wenig weiter :slight_smile:

Hoffe ich konnte es zumindest etwas verdeutlichen :slight_smile:

Grüße,
Chris

Du kannst aber auch ein allgemeines Skript verwenden mit dem Inhalt:

//Variable setzen
SetValue($_IPS[‚VARIABLE‘], $_IPS[‚VALUE‘]);

Das macht das gleiche und kann für alle Variablen genutzt werden.

Gruß

Burkhard

Moin :slight_smile:

Wenn du es so machst, wie Burkhard es beschrieben hat, dann aber nur kombiniert mit IPS SENDER == WebFront…

<?
if($IPS_SENDER == "WebFront")
{
   SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}
?>

Oder auch diese Variante mit switch-case ist möglich :smiley:

<?
if($IPS_SENDER == "WebFront")
{
   switch($IPS_VALUE)
   {
        case 0:
        Ein();
        break;
        case 1:
        Aus();
        break;
    }
}
?>

Wie gesagt, viele viele Wege führen nach Rom g Aber die kürzeste ist die von Burkhard beschriebene und wird auch von mir an den meisten Stellen verwendet, je nach Einsatzgebiet :slight_smile:

Grüße,
Chris