Automatic ajax updates of radio buttons

Wed, 20 Aug 2014 17:42:35 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Wed, 20 Aug 2014 17:42:35 +0200
changeset 257
abdba3f9d9e2
parent 256
8c52b09bdecc
child 258
e02393b29733

Automatic ajax updates of radio buttons

www-thermferm/getstate.php file | annotate | diff | comparison | revisions
www-thermferm/liveview.php file | annotate | diff | comparison | revisions
--- a/www-thermferm/getstate.php	Wed Aug 20 14:01:15 2014 +0200
+++ b/www-thermferm/getstate.php	Wed Aug 20 17:42:35 2014 +0200
@@ -36,9 +36,11 @@
 $beer_temperature = "NA";
 $beer_state = "NA";
 $target_temperature = "NA";
-$led1 = $led2 = $led3 = $sw1 = $sw2 = $sw3 = 0;
+$led1 = $led2 = $led3 = $sw1 = $sw2 = $sw3 = "";
 $fridge_set = "NA";
 $beer_set = "NA";
+$heater = $cooler = $fan = "no";
+
 
 if (startsWith($arr[0], "213")) {
     $j = 1;
@@ -57,12 +59,24 @@
 		$beer_temperature = $f[1];
 	if ($f[0] == "MODE")
 		$mode = $f[1];
-	if ($f[0] == "COOLER_STATE")
+	if (($f[0] == "COOLER_ADDRESS") && (strcmp($f[1], "(null)")))
+		$cooler = "yes";
+	if ($f[0] == "COOLER_STATE") {
+		$cooler_state = $f[1];
 		$led1 = $f[1] ? '<div class="LEDgreen_on"></div>' : '<div class="LEDgreen_off"></div>';
-	if ($f[0] == "HEATER_STATE")
+	}
+	if (($f[0] == "HEATER_ADDRESS") && (strcmp($f[1], "(null)")))
+		$heater = "yes";
+	if ($f[0] == "HEATER_STATE") {
+		$heater_state = $f[1];
 		$led2 = $f[1] ? '<div class="LEDgreen_on"></div>' : '<div class="LEDgreen_off"></div>';
-	if ($f[0] == "FAN_STATE")
+	}
+	if (($f[0] == "FAN_ADDRESS") && (strcmp($f[1], "(null)")))
+		$fan = "yes";
+	if ($f[0] == "FAN_STATE") {
+		$fan_state = $f[1];
 		$led3 = $f[1] ? '<div class="LEDgreen_on"></div>' : '<div class="LEDgreen_off"></div>';
+	}
 	if (($f[0] == "BEER_SET") && ($mode == "BEER"))
 		$target_temperature = $f[1];
 	if (($f[0] == "FRIDGE_SET") && ($mode == "FRIDGE"))
@@ -74,11 +88,50 @@
 }
 
 
+/*
+ * Create the value for the mode select radio buttons
+ */
+strcmp($mode, "OFF") ? $se = "" : $se = " checked";
+$modestr  = '    <input type="radio" name="mode" onchange="this.form.submit()" class="select" value="OFF"'.$se.'>Off<br>'.PHP_EOL;
+strcmp($mode, "NONE") ? $se = "" : $se = " checked";
+$modestr .= '    <input type="radio" name="mode" onchange="this.form.submit()" class="select" value="NONE"'.$se.'>None<br>'.PHP_EOL;
+(strcmp($heater, "no") || strcmp($cooler, "no")) ? $dis = "" : $dis = " disabled";
+strcmp($mode, "FRIDGE") ? $se = "" : $se = " checked";
+$modestr .= '    <input type="radio" name="mode" onchange="this.form.submit()" class="select" value="FRIDGE"'.$se.$dis.'>Fridge<br>'.PHP_EOL;
+strcmp($mode, "BEER") ? $se = "" : $se = " checked";
+$modestr .= '    <input type="radio" name="mode" onchange="this.form.submit()" class="select" value="BEER"'.$se.$dis.'>Beer<br>'.PHP_EOL;
+strcmp($mode, "PROFILE") ? $se = "" : $se = " checked";
+$modestr .= '    <input type="radio" name="mode" onchange="this.form.submit()" class="select" value="PROFILE"'.$se.$dis.'>Profile'.PHP_EOL;
+
+
+/*
+ * Create the values for the on/off switches
+ */
+(($mode == "NONE") && ($cooler == "yes")) ? $dis = "" : $dis = " disabled";
+($cooler_state == "0") ? $ch = " checked" : $ch = "";
+$sw1  = '        <input type="radio" name="CoolerState" onchange="this.form.submit()" value="0"'.$dis.$ch.'>Off<br>'.PHP_EOL;
+($cooler_state == "100") ? $ch = " checked" : $ch = "";
+$sw1 .= '        <input type="radio" name="CoolerState" onchange="this.form.submit()" value="100"'.$dis.$ch.'>On'.PHP_EOL;
+
+(($mode == "NONE") && ($heater == "yes")) ? $dis = "" : $dis = " disabled";
+($heater_state == "0") ? $ch = " checked" : $ch = "";
+$sw2  = '        <input type="radio" name="HeaterState" onchange="this.form.submit()" value="0"'.$dis.$ch.'>Off<br>'.PHP_EOL;
+($heater_state == "100") ? $ch = " checked" : $ch = "";
+$sw2 .= '        <input type="radio" name="HeaterState" onchange="this.form.submit()" value="100"'.$dis.$ch.'>On'.PHP_EOL;
+
+(($mode == "NONE") && ($fan== "yes")) ? $dis = "" : $dis = " disabled";
+($fan_state == "0") ? $ch = " checked" : $ch = "";
+$sw3  = '        <input type="radio" name="FanState" onchange="this.form.submit()" value="0"'.$dis.$ch.'>Off<br>'.PHP_EOL;
+($fan_state == "100") ? $ch = " checked" : $ch = "";
+$sw3 .= '        <input type="radio" name="FanState" onchange="this.form.submit()" value="100"'.$dis.$ch.'>On'.PHP_EOL;
+
+
+
 $reply = array (
     'air_temperature'     => $air_temperature,
     'beer_temperature'    => $beer_temperature,
     'target_temperature'  => $target_temperature,
-    'mode'                => $mode,
+    'mode'                => $modestr,
     'led1'                => $led1,
     'led2'                => $led2,
     'led3'                => $led3,
--- a/www-thermferm/liveview.php	Wed Aug 20 14:01:15 2014 +0200
+++ b/www-thermferm/liveview.php	Wed Aug 20 17:42:35 2014 +0200
@@ -170,9 +170,13 @@
 	$outstr .= '           $("#load_air_'.$unr.'").html(data.air_temperature);'.PHP_EOL;
 	$outstr .= '           $("#load_beer_'.$unr.'").html(data.beer_temperature);'.PHP_EOL;
 	$outstr .= '           $("#load_target_'.$unr.'").html(data.target_temperature);'.PHP_EOL;
+	$outstr .= '           $("#load_select_'.$unr.'").html(data.mode);'.PHP_EOL;
 	$outstr .= '           $("#load_led1_'.$unr.'").html(data.led1);'.PHP_EOL;
 	$outstr .= '           $("#load_led2_'.$unr.'").html(data.led2);'.PHP_EOL;
 	$outstr .= '           $("#load_led3_'.$unr.'").html(data.led3);'.PHP_EOL;
+	$outstr .= '           $("#load_sw1_'.$unr.'").html(data.sw1);'.PHP_EOL;
+	$outstr .= '           $("#load_sw2_'.$unr.'").html(data.sw2);'.PHP_EOL;
+	$outstr .= '           $("#load_sw3_'.$unr.'").html(data.sw3);'.PHP_EOL;
         $outstr .= '         });'.PHP_EOL;
 	$outstr .= '       }, 10000);'.PHP_EOL;
 	$outstr .= '     });'.PHP_EOL;
@@ -183,6 +187,7 @@
 	$outstr .= '     <div id="fermentor_panel_top">'.PHP_EOL;
 	$outstr .= '      <div id="fermentor_selector">'.PHP_EOL;
 	$outstr .= '       <form id="select_'.$unr.'" action="index.php" method="post">'.PHP_EOL;
+	$outstr .= '      <div id="load_select_'.$unr.'">'.PHP_EOL;
 	strcmp($mode, "OFF") ? $se = "" : $se = " checked";
 	$outstr .= '        <input type="radio" name="mode" onchange="this.form.submit()" class="select" value="OFF"'.$se.'>Off<br>'.PHP_EOL;
 	strcmp($mode, "NONE") ? $se = "" : $se = " checked";
@@ -194,6 +199,7 @@
 	$outstr .= '        <input type="radio" name="mode" onchange="this.form.submit()" class="select" value="BEER"'.$se.$dis.'>Beer<br>'.PHP_EOL;
 	strcmp($mode, "PROFILE") ? $se = "" : $se = " checked";
 	$outstr .= '        <input type="radio" name="mode" onchange="this.form.submit()" class="select" value="PROFILE"'.$se.$dis.'>Profile'.PHP_EOL;
+	$outstr .= '       </div>'.PHP_EOL;
 	$outstr .= '        <input type="hidden" name="UUID" value="'.$unit.'">'.PHP_EOL;
 	$outstr .= '       </form>'.PHP_EOL;
 	$outstr .= '      </div>'.PHP_EOL;
@@ -321,9 +327,11 @@
 	$outstr .= '       <form action="index.php" method="post">'.PHP_EOL;
 	(($mode == "NONE") && ($cooler == "yes")) ? $dis = "" : $dis = " disabled";
 	($cooler_state == "0") ? $ch = " checked" : $ch = "";
-	$outstr .= '        <input type="radio" name="CoolerState" onchange="this.form.submit()" value="0"'.$dis.$ch.'>Off<br>'.PHP_EOL;
+	$outstr .= '        <div id="load_sw1_'.$unr.'">'.PHP_EOL;
+	$outstr .= '         <input type="radio" name="CoolerState" onchange="this.form.submit()" value="0"'.$dis.$ch.'>Off<br>'.PHP_EOL;
 	($cooler_state == "100") ? $ch = " checked" : $ch = "";
-	$outstr .= '        <input type="radio" name="CoolerState" onchange="this.form.submit()" value="100"'.$dis.$ch.'>On'.PHP_EOL;
+	$outstr .= '         <input type="radio" name="CoolerState" onchange="this.form.submit()" value="100"'.$dis.$ch.'>On'.PHP_EOL;
+	$outstr .= '        </div>'.PHP_EOL;
 	$outstr .= '        <input type="hidden" name="UUID" value="'.$unit.'">'.PHP_EOL;
 	$outstr .= '       </form>'.PHP_EOL;
 	$outstr .= '      </div>'.PHP_EOL;
@@ -332,9 +340,11 @@
 	$outstr .= '       <form action="index.php" method="post">'.PHP_EOL;
 	(($mode == "NONE") && ($heater == "yes")) ? $dis = "" : $dis = " disabled";
 	($heater_state == "0") ? $ch = " checked" : $ch = "";
-	$outstr .= '        <input type="radio" name="HeaterState" onchange="this.form.submit()" value="0"'.$dis.$ch.'>Off<br>'.PHP_EOL;
+	$outstr .= '        <div id="load_sw2_'.$unr.'">'.PHP_EOL;
+	$outstr .= '         <input type="radio" name="HeaterState" onchange="this.form.submit()" value="0"'.$dis.$ch.'>Off<br>'.PHP_EOL;
 	($heater_state == "100") ? $ch = " checked" : $ch = "";
-	$outstr .= '        <input type="radio" name="HeaterState" onchange="this.form.submit()" value="100"'.$dis.$ch.'>On'.PHP_EOL;
+	$outstr .= '         <input type="radio" name="HeaterState" onchange="this.form.submit()" value="100"'.$dis.$ch.'>On'.PHP_EOL;
+	$outstr .= '        </div>'.PHP_EOL;
 	$outstr .= '        <input type="hidden" name="UUID" value="'.$unit.'">'.PHP_EOL;
 	$outstr .= '       </form>'.PHP_EOL;
 	$outstr .= '      </div>'.PHP_EOL;
@@ -343,9 +353,11 @@
 	$outstr .= '       <form action="index.php" method="post">'.PHP_EOL;
 	(($mode == "NONE") && ($fan== "yes")) ? $dis = "" : $dis = " disabled";
 	($fan_state == "0") ? $ch = " checked" : $ch = "";
-	$outstr .= '        <input type="radio" name="FanState" onchange="this.form.submit()" value="0"'.$dis.$ch.'>Off<br>'.PHP_EOL;
+	$outstr .= '        <div id="load_sw3_'.$unr.'">'.PHP_EOL;
+	$outstr .= '         <input type="radio" name="FanState" onchange="this.form.submit()" value="0"'.$dis.$ch.'>Off<br>'.PHP_EOL;
 	($fan_state == "100") ? $ch = " checked" : $ch = "";
-	$outstr .= '        <input type="radio" name="FanState" onchange="this.form.submit()" value="100"'.$dis.$ch.'>On'.PHP_EOL;
+	$outstr .= '         <input type="radio" name="FanState" onchange="this.form.submit()" value="100"'.$dis.$ch.'>On'.PHP_EOL;
+	$outstr .= '        </div>'.PHP_EOL;
 	$outstr .= '        <input type="hidden" name="UUID" value="'.$unit.'">'.PHP_EOL;
 	$outstr .= '       </form>'.PHP_EOL;
 	$outstr .= '      </div>'.PHP_EOL;

mercurial