Bestimmten Zustand anzeigen lassen Farben/wert

  • Hallo erstmal...
    und schön das es solche Foren gibt.

    Zu meinem Problem:

    Ich habe in meiner HTML eine schaltfläche bzw. button.
    Über eine Referenz von einem Modem ruft sich diese einen Wert ab, wenn man diesen betätigt.
    Das funktioniert auch sehr gut.
    Ich möchte nun noch gerne implementieren, dass wenn die Seite gestartet wird abgefragt wird ob der Wert evtl. schon gegeben ist.
    Beispiel: der wert 1 ist gesetzt und wenn die seite aufgerufen wird, wird erkannt ..aha.. 1 ist gesetzt, die Buttonschriftfarbe ist grün.
    Ist der wert 0 , also nicht gesetzt, soll die Buttonfarbe schwarz sein.

    Ich hoffe es ist irgendwie verständlich.

    Ich hatte das mal damals.. ist aber schon etwas her und ich blick das nicht mehr so.

  • Hallo...

    Trotzdem danke für die Rückmeldung

    ich habe es mit Javascript gelöst, was auch recht gut klappt. Nun bin ich allerdings auf ein neues Problem gestoßen.

    Ich habe verschiedene Zustände die angezeigt werden sollen.
    Einfachhalber sagen wir mal es ist eine Ampel, wobei wir jede Farbe als einzelne behandeln.
    Also gibt es nur zwei zustände : an und aus. bzw. 1 und 0

    In Javascript habe ich es so gelöst:

    Code
    <div id="ampel_rot_aus">A</div>
    		<script type="text/javascript">	
    						if ("hier würde die referenz stehen, die abgerufen wird" == "1") { 
    							document.write('<div id="ampel_rot_an"></div>');	
    						} 
    		</script>


    Den CSS Code poste ich jetzt mal nicht.
    Das funktioniert bestens...

    Ich habe nun buttons, bei denen ich es auch gerne so haben möchte.

    der würde so aussehen:

    Code
    <td><input id="hand1" type="submit" class ="input" value="AUTO"/></td>

    Nun soll dieser halt wie bei der ampel ersetzt werden. Bei der Ampel habe ich ja mit einer festen Position gearbeitet, sodas die farbe einfach drüber geschrieben wurde.
    Bei den Buttons, schiebt er einen button daneben, so das ich nun einen extra button neben dem eigentlichen habe.

    Gibts in Javascript etwas womit ich gleichzeitig den neuen button setzen kann, der alte dann weggenommen wird?

  • Ja... wollte ich eigentlich auch.. hat sich leider aber nicht im Betrieb bewahrheitet.

    Evtl funktioniert es ja so... da bräuchte ich allerdings eure Hilfe bzw. bin drauf angewiesen.

    Code
    <td class="style9" ><input  name="name" class="input" type="submit" value="Auto" onclick="window.open('../cgi-bin/writeVal.exe?/Process/Bus1/Device_0/Variable_5=1','new','');"/>

    Ganz normaler Button der einen Wert übergibt.

    Die Farbe des Buttons bzw. der Zustand soll sich aber ändern wenn der wert schon gegeben ist.

    ich habe mir mir javascript es in etwa so gedacht:

    Code
    <script type="text/javascript">	
    		if ("/Process/Bus1/Device_0/Variable_5" == "1") { 
    		document.write('< * hier jetzt das rein was den button enabled />');
    
    			} 
    		if ("/Process/Bus1/Device_0/Variable_5" == "0") { 
    		document.write('<* hier jetzt das rein was den button disabled/>');
    
    	                      } 
    		</script>

    Ist das irgendwie klar geworden? ich bin nämlich sehr leicht überfordert.

  • HTML
    if ("/Process/Bus1/Device_0/Variable_5" == "0") {

    Wird niemals true zurückspucken... Du vergleichst einen String mit "0" (auch string).

    Schau dir Globale Variablen in JavaScript mal an, vielleicht hilfts dir ja weiter. Mit diesen Schnipseln kann ich dir leider auch nicht mehr sagen...

  • Danke für die Antwort. Gestern habe ich noch ein wenig rumprobiert.
    Hintergrund für die ganze Aktion ist halt ein Modem welches eine browserbasierte Zustandssteuerung hat.

    Code
    <script type="text/javascript">	
    	if ("&#xae;/Process/PV/V1_Zustd_Auto;" == "0") { 
    	document.write('<div id="Text_Title2_rot"><span  style="font-family:Arial" style="color:black"><strong>Titel 2</strong></span></div>');	
    	} 
    	if ("&#xae;/Process/PV/V1_Zustd_Auto;" == "1") { 
    	document.write('<div id="Text_Title2"><span  style="font-family:Arial" style="color:black"><strong>Titel 2</strong></span></div>');	
    	} 
               </script>

    Das hier funktioniert zum Beispiel 1A. Da wird wirklich nur verglichen und der Titel ändert sich bei 1 oder 0 was das Modem halt geschaltet hat.


    Deshalb habe ich halt gedacht das ich es auch so bei dem vorherigen Code machen könnte... mir fehlt halt der Bezug zu dem OnClick button. So wie ich es mache, würde er zwei Buttons anzeigen.

    Evtl geht das ganze ja auch in einer einzigen Javascript abfrage.

    Also der Button ist auf der seite. Wird er gedrückt, übergibt er einen wert. Es gibt auch nur die beiden zustände 1 oder 0.
    Ist 1 schon gesetzt soll die Farbe der Schrift des Buttons grün sein.
    Ist 0 gesetzt soll sie schwarz bleiben.

    Ich habe irgendwie einen Denkfehler. Habe aber auch nicht so viel Ahnung von Javascript um alleine dahinter zusteigen.

  • Hallo nochmals..
    Es geht...

    Zumindest fast.

    Jetzt habe ich ein ganz anderes Problem:

    Code
    <form action="/cgi-bin/writeVal.exe" method="get" target="hide1">
    			<td class="style9" ><p><input type="hidden" class ="input3" name="&#xae;/Process/Bus1/Device_0/Ventil_1_Steuerwort;" value="1"/></p>
    </td>
    			<iframe width="0" height="0" name="hide5"></iframe></form>

    Wie bekomme ich es hin, das das was unter "name" steht, also die verkknüpfung auch so übertragen wird? Im Moment ersetzt er die Sonderzeichen also den "/" mit %2F... so wird natürlich nix gefunden.

    Ich habe gelesen das in der Form "Get" damit Probleme hat, aber ich weiß leider keine Alternative.
    Weiß jemand hier Rat?

  • Hey... Abend.

    Also es geht eher um diese hier:

    Code
    name="&#xae;/Process/Bus1/Device_0/Ventil_1_Steuerwort;"



    Es soll durch die Form ja das hier ausgegeben werden wenn der Button gedrückt wird : /cgi-bin/writeVal.exe?/Process/Bus1/Device_0/Ventil_1_Steuerwort=1

  • leider funktionieren beide Möglichkeiten nicht.

    Er erkennt die "/" bei cgi-bin/writeVal.exe...
    aber eben nicht bei der Sequenz die folgen soll

    die die unter name stehen sind halt %2F.

    was ich wirklich nicht verstehe...
    kann es an der method="get" liegen?