PHP innerhalb von JavaScript?

tach,

geht das ? php innerhalb von Java


	 <script type = "text/javascript">
	 	var frameLoad; 	// holds the load_rfame function
		var interval;
		
		interval = 1000;
		
		window.clearTimeout(Update);
		  Update(0);
		  
		  function Update(count) {
			
			count++;  
			document.getElementById("Cam4").src = "http://10.0.0.45/record/current.jpg?" + count;
			frameLoad = window.setTimeout(function(){Update(count)},interval);
		  }
	  
    </script> 

so funktioniert das einwandfrei

wenn ich einfüge


interval = <?php getvalue(21751);?>; geht es nicht mehr !

Aktualisiere meine Webcam damit - jede Sekunde das Bild neu laden

Habt ihr ne Idee ?

gruß
Christian

Auf den ersten Blick fehlt vor dem GetValue ein echo.

paresy

danke … so gehts

leider werden die werte aber im reload nicht aktualisiert ?

erst wenn ich die seite neulade …

ne idee ?

so schauts jetzt aus


	 <script type = "text/javascript">
	 	var frameLoad; 	// holds the load_rfame function
		var  interval;
		
		interval = 1000;
		
		window.clearTimeout(Update);
		  Update(0);
		  
		  function Update(count) 
		  {
			interval = <?php echo getvalue(21751)?>;
			count++;  
			document.getElementById("Cam1").src = "http://10.0.0.40/record/current.jpg?" + count;
			document.getElementById("Cam2").src = "http://10.0.0.43/record/current.jpg?" + count;
			document.getElementById("Cam3").src = "http://10.0.0.44/record/current.jpg?" + count;
			document.getElementById("Cam4").src = "http://10.0.0.45/record/current.jpg?" + count;
			frameLoad = window.setTimeout(function(){Update(count)},interval);
		  }
	  
    </script>  

So hast du es ja auch programmiert. Erst bei einem Reload wird die PHP Funktion neu aufgerufen. Das Javascript läuft nur im Browser uns hat nichts mehr mit PHP zu tun.

paresy

tja, kann man das irgendwie auf php umsetzen … bin da absoluter newbie

ich kann natürlich die seite im z.b. 5s takt aufrufen, aber dann flackert das kurz im browser

<html><head>
</head>
<body>
<img src="" id="Cam1"><br />
<img src="" id="Cam2"><br />
<img src="" id="Cam3"><br />
<img src="" id="Cam4"><br />

<script type = "text/javascript">
    function updateCams()
    {
        document.getElementById("Cam1").src = "http://10.0.0.40/record/current.jpg?t=" + new Date().getTime();
        document.getElementById("Cam2").src = "http://10.0.0.43/record/current.jpg?t=" + new Date().getTime();
        document.getElementById("Cam3").src = "http://10.0.0.44/record/current.jpg?t=" + new Date().getTime();
        document.getElementById("Cam4").src = "http://10.0.0.45/record/current.jpg?t=" + new Date().getTime();
    }
    
    updateCams();
    window.setInterval(function () { updateCams(); }, <?php echo GetValue(21751)?>);
</script>

</body>
</html>

So werden die Bilder aktualisiert. Das Intervall wird allerdings nur beim Refresh neu ausgelesen. Willst Du das regelmäßig aktualisieren musst Du mit Ajax arbeiten. Dazu kannst Du Dir mal http://www.ip-symcon.de/forum/f3/problem-sajax-3422/index2.html#post61594 ansehen.

danke horst,

so hatte ich das ja auch schon …

dabei ist mir aber noch was neues aufgefallen … vom internet aus gehts natürlich nicht, da man natürlich ohne vpn nicht auf die lokalen ip zugreifen kann.

habe gerade mal versucht per script die bilder auf den server zu kopieren

das funzt und dann auch vom internet, auf die geschwindigkeit ist bescheiden.

und das erzeugt nebenbei noch ne menge traffic

ganz glücklich bin ich damit noch nicht :frowning:

Du kannst die Bilder über ein PHP-Image-Proxy-Skript leiten. Sollte ungefähr so funktionieren (ungetestet):

<?php
    header("Last-Modified: ".gmdate("D, d M Y H:i:s", time())." GMT");
    header("Pragma: no-cache");
    header("Expires: 0");
    header("Cache-Control: no-store, no-cache, must-revalidate");
    header("Cache-Control: pre-check=0, post-check=0, max-age=0");
    header("Content-Type: image/jpeg");
    readfile($_GET['image']);
?>

Hallo!

Vielleicht hilft der Lösungsansatz? Hier wird der Div-Tag mit der ID „reload“ aktualisiert, jede Sekunde…

index.php


<?php 
$start = 1;
$timeout = 1000;
?>

<script type="text/javascript">

setTimeout("TimerEvent()",<?php echo $timeout; ?>);

function TimerEvent()
{
    $(document).ready(function(){
        $("#reload").load("loaderContent.php",{timeout:<?php echo $timeout; ?>});
      });
}

</script>
<div id ="reload">

</div>

loaderContent.php


<?php 
$timeout = $_POST["timeout"];

if (isset ($_POST["counter"]))
{
    $counter = $_POST["counter"];
    
    
}
else
{
    $counter = 0;

    
}
$timeout = $_POST["timeout"];
$counter++;
?>

<script type="text/javascript">

setTimeout("TimerEvent()",<?php echo $timeout; ?>);

function TimerEvent()
{
     $(document).ready(function(){
            $("#reload").load("loaderContent.php", {"counter":<?php echo $counter; ?>,"timeout":<?php echo $timeout; ?>});
          });
            
}

</script>
<div id = "reload">

<?php 
echo $counter;
//var_dump ($_POST);
?>
</div>
<div id ="reload2">
<?php 
echo $counter;
//var_dump ($_POST);
?>
</div>