Как сделать инкремент на стороннее сервера через setInteval и ajax? 
		
		
		
		Мне нужно отправить число сделать в php инкремент, вернуть значение отправить его повторно потом еще раз прибавить единицу в PHP и все это через setInterval? Как это сделать? Максимум мне удалось прибавить единицу, больше число не увеличивается 
	
<html>
  <head>
  <title></title>
  <style>
    body
    {
      margin: 0;
    }
    canvas
    {
      width:100%;
      height:100%
    };
  </style>
  </head>
  <body>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.js"></script>
   
   
    <div id="result"></div>
    <script>
     
      var index = 0;
      function ajax_query(filename,index)
        {
        ind = index;
        
        $.ajax({
                    type: "POST",
                    url: 'test.php',
                    data: "flname="+filename+"&num="+ind,
                    dataType: "json",
                    
                    success: function(response)
                    {
                      
                       if(response.result=="success")
                       {
                       
                         index = response.num;
                         jQuery('#result').html(index);
                        
                       }
                         
                      
                   }
               });
              console.log(index); 
               
        }
      function main()
      {
       
        setInterval(ajax_query,1000,'ex.txt',index);
      }
      main();
      
      
     
    </script>
  </body>
</html>
Код php: 
<?php
$num = $_POST["num"];
$flname = $_POST["flname"];
$num++;
 file_put_contents($flname,$num."\n",FILE_APPEND);
 
 
echo json_encode(array(
            'result' 	=> 'success',
            'num' => $num
   ));
?>
 | 
	
		
 Цитата: 
	
 Я пока не совсем понял... Сколько раз ты хочешь увеличивать тот "счетчик"?  | 
	
		
 Цитата: 
	
 И в чем сакральный смысл этого действа? :blink:  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 Но посылать, дождавшись ответа - это уже другая задача.  | 
	
		
 Цитата: 
	
  | 
	
		
 У вас меняется только index - параметр функции. По сути - локальная переменная 
	А глобальная, описанная в строке 23 никак не меняется. 
<html>
  <head>
  <title></title>
  <style>
    body
    {
      margin: 0;
    }
    canvas
    {
      width:100%;
      height:100%
    };
  </style>
  </head>
  <body>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.js"></script>
    
    
    <div id="result"></div>
    <script>
      
      var index = 0;
      function ajax_query(filename)
        {         
        $.ajax({
                    type: "POST",
                    url: 'test.php',
                    data: "flname="+filename+"&num="+index,
                    dataType: "json",
                     
                    success: function(response)
                    {
                       
                       if(response.result=="success")
                       {
                        
                         index = response.num;
                         jQuery('#result').html(index);
                         
                       }
                          
                       
                   }
               });
              console.log(index);
                
        }
      function main()
      {
        
        setInterval(ajax_query,1000,'ex.txt');
      }
      main();
       
       
      
    </script>
  </body>
</html>
 | 
	
		
 Я не могу понять глобальную переменную можно обозначить в PHP чтобы через Refresh 5 секунд, через ajax или еще как-нибуть увеличивалось? 
	 | 
	
		
 PHP вообще нет дела до ваших переменных. Он получает какие то данные, и все. Он понятия не имеет откуда они взялись. И передает данные, и ему совершенно побоку куда вы их засуните, в глобальную или локальную переменную 
	 | 
	
		
 Цитата: 
	
 Не важно как долго шел ответ от сервера? Если так - пойдет и setInterval()...  | 
	
		
 Цитата: 
	
  | 
	
		
 Все уже не надо. Решила инкремент делать на javascript, а на php отправлять только результат. Работает. 
	javascript: 
<html>
  <head>
  <title></title>
  </head>
  <body>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.js"></script>
<div id="result">0</div>
<script type="text/javascript">
$(function(){
var interval = 3000;  
function doAjax(i) {
    $.ajax({
            type: 'POST',
            url: 'increment.php',
            data: "num="+i,
            dataType: 'json',
            success: function (response) {
               if(response.result=="success")
               {
                    	$('#result').html(response.num);  
               } 
            },
            complete: function (data) {
                 
                    
                    setTimeout(doAjax, interval,i + 1);
            }
    });
}
setTimeout(doAjax, interval,1);
});
</script>
    </script>
  </body>
</html>
PHP 
<?php
$num = $_POST["num"];
echo json_encode(array(
            'result' 	=> 'success',
            'num' => $num
   ));
?>
 | 
	
		
 Olga27, если это окончательный вид PHP скрипта, то он бесполезен чуть более, чем полностью. 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 Olga27, 
	Цитата: 
	
 - не будет задержек при обновлении счетчика на странице, ведь запрос к серверу отправлять не нужно; - серверу не придется заниматься бесполезными действиями такими как получить от клиента число и его же ему же вернуть. Без сервера ваш код может выглядеть так: 
<html>
<head>
    <title>Counter</title>
</head>
<body>
    <div id="result"></div>
    <script type="text/javascript">
        (function tick(counter) {
            document.getElementById('result').innerHTML = counter;
            setTimeout(tick, 3000, ++counter);
        })(0);
    </script>
</body>
</html>
 | 
	
		
 Nexus, 
	Это не весь код на сервере json документ который открывается. 
$ourData = file_get_contents("data.json");
$outcls=json_decode($ourData,true);
Потом, туда будут вноситься данные и документ будет перезаписываться. Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 03:01. |