У меня есть код, где я делаю запрос AJAX для определенного файла при каждом нажатии кнопки, запрос выглядит следующим образом:
$("#syncDNS").click(function(){
$('#status').html("");
$('#status').addClass('loading');
function updateProgress(){
$.ajax({
type: 'POST',
url: 'index.php',
success: function(data){
$('#status').html(data);
}
});
}
$.ajax({
url: 'index.php?action=sync',
success: function (response) {
clearInterval(loop);
$('#status').removeClass('loading');
if(response){
$('#status').addClass('alert alert-warning').html("<h4>Aviso</h4>" + response);
}else{
$('#status').addClass('alert alert-success').html("<h4>Sucesso</h4>" + "DNS sincronizado com sucesso!");
}
}
});
updateProgress();
var loop = setInterval(function () {
updateProgress();
}, 1000);
});
В коде я делаю запрос, и пока Я жду его успеха, я продолжаю запускать в oop другую функцию, чтобы обновить прогресс первой. И в моем файле index. php у меня есть:
require_once(CONTROLLER_PATH . "ControleAutodns.php");
$action = isset($_GET['action']) ? $_GET['action'] : '';
switch ($action) {
...
case 'sync':
$controller = ControleAutodns::getInstance();
$return = $controller->syncDNS();
exit($return);
break;
...
}
В индекс, который я включаю в свой контрольный файл и вызываю функцию PHP, эта функция php имеет вид al oop, где я добавить несколько записей в базу данных:
public function syncDNS(){
...
foreach($result as $row) {
$current ++;
echo($current);
...
}
...
return $string;
}
Дело в том, что запросы работают, как задумано, и функция PHP также выполняет свою работу, я просто не могу слушать эхо в syncDNS функция, почему это? Я также пытался использовать ob_start (), ob_flu sh (), flu sh (), но ничего не получалось. Как я понимаю, контрольный файл включен в индекс, поэтому все, что там отображается, должно быть доступно через AJAX запрос POST.