Как сделать инкремент на стороннее сервера через 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()... |
Часовой пояс GMT +3, время: 01:50. |