getvalue() in JS

ich versuche, den Wert einer IPS-Variable in regelmässigen Abständen (alle 10 Sekunden) zu lesen und in ein Javascript widget zu schreiben. Das funktioniert beim ersten Aufruf prima. Danach bringt aber das PHP-Befehl immer den erstgelesenen Wert, selbst nachdem sich die Variable geändert hat. Kann mir jemand sagen, was ich falsch mache? Hier ist der Code:



<head>

<script type="text/javascript">

$(document).ready(function() {
	FetchWeatherDataJQ()
   setInterval('FetchWeatherDataJQ()', 10000); // xyz milliseconds
});

function FetchWeatherDataJQ()
	{
	<?php
	$outsidetemp = "Outside Temp.: ". getvalue(53428); 
	//$outsidetemp = getvalue(53428); 
	$Barometer="Pressure: ". getvalue(29183);
	$currWindspeed="Current wind speed: ". getvalue(58383);
	$InsideHumidity="Humidity inside: ". getvalue(13794);
	$InsideTemperature="Inside Temp.: ". getvalue(34430);
	$OutsideHumidity="Humidity inside: ". getvalue(29232);
	$WindAlarm="Wind alarm: ". getvalue(40165);
	$WindDirection="Wind direction: ". getvalue(26714);
	$WindSpeedTenMinAverage="Wind speed (10' average): ". getvalue(18841);
	?>
	var d=new Date();
	alert("<?php echo getvalue(53428) ?>");	
	$('#StatusWidget1').html(d.toLocaleTimeString() + "<?php echo '<br />'. getvalue(53428) .'°C'; ?>");

	}
</script>

</head>

<body>
<div id="div1"class="results"></div>
<div id="div2"class="result"></div>

<div  class="BezeledPlane"> 
<div class="WeatherData" id="WeatherData1"> WeatherData1 Content </div>
</div>

<div  class="BezeledPlane">

<div class="StatusWidgetRed" id="StatusWidget1"> Content</div>
</div>

</body>
</html>

Die Kurzform: Du versuchst PHP-Code in Javascript auszuführen…

Die etwas längere Form: Die GetValue-Methode wird einmal beim starten der Seite vom Server ausgeführt und danach nie wieder… denn Javascript läuft auf dem Client und kann kein PHP ausführen…:smiley:

Danke Hag. Deine Erklärung leuchtet mir völlig ein. Dann probiere ich es asynchron, mit AJAX:


function FetchWeatherDataNew()
	{
	$.ajax({ url: "php/FetchBellariaWeather.php", 
         data: {action: 'FetchBellariaData'}, 
		 dataType: 'json', 
         type: 'post', 
         success: function(WeatherArray) { 
                      alert(WeatherArray); 
                  } 
	}); 

	}

der PHP-Skript produziert server-seitig ein Array, welches ich hiermit herausgebe:


header("Content-type: application/json");
json_encode($BellariaWetterstationArray);

Nach meinem Verständnis sollte nun Client-seitig dieser Array in „WeatherArray“ enthalten sein. Der Alert gibt aber „Null“ als Inhalt". Auch

alert(JSON.stringify(output));

gibt eine Null aus. Any thoughts? Danke!!!

problem gelöst!


function FetchWeatherDataJQ()
	{
	$.ajax
		 ({ url: "php/FetchBellariaWeather.php", 
         data: {action: 'FetchBellariaData'}, 
		 //dataType: 'json', 
         type: 'post', 
		 success: function(WeatherArray) {
			 var WA = WeatherArray;
			 //alert(WA);
			 var d=new Date();
			 $('#StatusWidget1').html(d.toLocaleTimeString() + '
' + WA);
			 } 
	     }); 
	
	}

Muss nur noch den Output vernünftig formattieren, dann habe ich es.
Danke!