Beiträge von Marcus2010

    @ AndreasB Die Idee war jetzt spontan und vorher nicht vorhanden, mach dann das ganze mit Ids und wenn ich mehrere Elemente hab mach ich halt mehrere IDs und schreib mein Bool in den String mehrmals rein (macht die SPS) dann erfolgt die Stringübergabe und das soll der Webserver (bzw. die Webseite ) dann ohne Konvertierung als Array of Bools interpretieren.


    Code unabhänging vom Datentyp bzw. Variablenname
    :="Db_fuer_Webpage".Licht_Satus: ( kann Bool, Int , String usw. sein )


    Datentyp Inhalt Darstellung auf Webseite

    Bool 1 1

    String abc abc
    Int 10 10

    Real 16.0 1,60e^1


    im "trockenen" hab ich jede Menge Fehler im Code bzw. die Verschwinden, wenn ich das ganze über den Webserver auf der SPS ansehe.

    Ok Danke, geht nun. Noch eine kleine Änderung, wäre das mit ID und Klassen gemischt möglich ( bei einem Element mit ID und bei mehreren Elementen dann als Klasse ? oder muss ich dan alles auf Klassen ausrichten (selbst die einzelnen Elemente) ?

    Bsp


    <svg>

    .....

    <circle id="Test1" cx="50" cy="10" r="2" stroke="black" stroke-width="0.1" fill="white" />

    <circle class="Test2" cx="50" cy="15" r="2" stroke="black" stroke-width="0.1" fill="white" />

    <circle class="Test2" cx="50" cy="25" r="2" stroke="black" stroke-width="0.1" fill="white" />

    ....

    </svg>


    mit

    function onofflight(Status,Name)

    {


    for(var i=0; i<3; i++)

    {

    if (Status[i] =='0')

    {

    document.getElementById(Name[i]).setAttribute("fill", "white");

    document.getElementByClassName(Name[i]).setAttribute("fill", "white");

    ....

    }



    oder


    <svg>

    .....

    <circle class="Test1" cx="50" cy="10" r="2" stroke="black" stroke-width="0.1" fill="white" />

    <circle class="Test2" cx="50" cy="15" r="2" stroke="black" stroke-width="0.1" fill="white" />

    <circle class="Test2" cx="50" cy="25" r="2" stroke="black" stroke-width="0.1" fill="white" />

    ....

    </svg>


    mit


    function onofflight(Status,Name)

    {


    for(var i=0; i<3; i++)

    {

    if (Status[i] =='0')

    {

    document.getElementByClassName(Name[i]).setAttribute("fill", "white");

    ....

    }

    Übergabe in beiden Fällen dann so

    onofflight(['0','1','0'],['Test1','Test2','Test3']);

    Flogender Code Funktioniert bereits. Satus kann sich ändern (bzw. hier im Code zum probieren statisch mit 0 und 1 )


    <svg>

    .....

    <circle id="Test1" cx="50" cy="10" r="2" stroke="black" stroke-width="0.1" fill="white" />

    <circle id="Test2" cx="50" cy="15" r="2" stroke="black" stroke-width="0.1" fill="white" />

    <circle id="Test3" cx="50" cy="25" r="2" stroke="black" stroke-width="0.1" fill="white" />

    ....
    </svg>



    <script>

    onofflight("0","Test1");

    onofflight("1","Test2");

    onofflight("0","Test3");

    </script>


    mit


    function onofflight(Status,Name)

    {

    {

    if (Status =='0')

    {

    document.getElementById(Name).setAttribute("fill", "white");

    }

    if (Status =='1')

    {

    document.getElementById(Name).setAttribute("fill", "yellow");

    }

    }


    soll nun folgender Code werden (Leider geht der nicht, bzw. ist noch irgendwo ein kleiner Fehler drin, womöglich nur ein Syntaxfehler (Beispiel mit belibig zwei gleich langen Arrays)
    <script>

    onofflight("[0,1,0]","[Test1,Test2,Test3]");

    </script>


    mit der Funktion

    function onofflight(Status,Name)

    {


    for(var i=0; i<3; i++)

    {

    if (Status[i] =='0')

    {

    document.getElementById(Name[i]).setAttribute("fill", "white");

    }

    if (Status[i] =='1')

    {

    document.getElementById(Name[i]).setAttribute("fill", "yellow");

    }

    }

    }