1回しか表示しません。F5を押すとカウントアップします。なぜループしてくれないのでしょうか?
PHP
1<!DOCTYPE html> 2<html lang="ja"> 3<body> 4 <div id="edit_area"></div> 5 <script> 6 var fn = function() { 7 <?php 8 $foo = file_get_contents ("10.txt"); 9 file_put_contents("10.txt", $foo + 1); 10 ?> 11 let bar = '<?php echo $foo; ?>'; 12 document.getElementById('edit_area').innerHTML = bar; 13 setTimeout(fn,100); 14 }; 15 fn(); 16 </script> 17</body> 18</html>
カウントアップ処理を続けたい、ということでしょうか?
はい。100msごとにfnを再帰呼び出ししているつもりです。
JS の中で PHP を実行しようとしてるように見えますが、そんなことはできないので…。
え?そうなんですか?ではなぜ1回は動くのでしょうか?
また、やりたいことはなんとなくわかって頂けるかと思います。
どのように分割して実装すればカウントアップ可能になりますか?
追記
やっぱりわかりません。どうすればいいのでしょうか?
追記
やりたいことはサーバー側で管理、更新しているデータを端末側にリアルタイムで表示することです。
追記
ちなみに↓こちらの手法で出来ていると言えば出来ていますがチカチカします。
https://teratail.com/questions/5tlnwgdmzj3mn6
出来ました!!!
HTML
1<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 2<div id="edit_area"></div> 3<script> 4var fn = function() { 5 $.ajax({ 6 type: 'post', 7 url: "test6.php", 8 success: function(result){ 9 document.getElementById('edit_area').innerHTML = result; 10 } 11 }); 12 setTimeout(fn,10); 13}; 14fn(); 15</script>
PHP
1<?php 2$result = file_get_contents ("10.txt"); 3file_put_contents("10.txt", $result + 1); 4echo $result; 5exit; 6?>

回答2件
あなたの回答
tips
プレビュー