Показать сообщение отдельно
  #1 (permalink)  
Старый 23.09.2016, 13:44
Аватар для usesa
Аспирант
Отправить личное сообщение для usesa Посмотреть профиль Найти все сообщения от usesa
 
Регистрация: 30.09.2014
Сообщений: 32

ajax php и bootstrap
Здравствуйте!

В общем у меня уже недели две как кризис не могу идти дальше А дело вот в чём. Раньше-то я работал с ajax и всё нормально было. Теперь потребовалась обработка большого числа строк для сайта заказчика. Ну понятное дело обработчик в php файле и всё работает. Но, поскольку строк достаточно много, обязательно требуется прогрессбар... и вот тут начинается самое интересное. У меня не получается его организовать даже с банальным циклом for и sleep... Ну я понимаю, что делаю лишь бы что.... покажу. Таймер прикручивал, пробовал через кукисы... толку нет. Мне бы понять механизм, как таймер из скрипта срабатывает.... В интернете полно уроков по загрузке файла, а по работе со строками нет
$(document).ready(function(){

  $('#start-data').submit(function(event){
  event.preventDefault();

  var form = $(this);
  var data = form.serialize();

		$("#start-data").hide();
	  $("#progress").show();

	  $.ajax({
	    type: "POST",
	    dataType: "text",
	    url: 'functions.php',
      async: true,
	    data: data,

	    success:function(html) {
				if (Cookies.get('errorflag')==1) {
					console.log('bad');
				}
	      else {
					console.log('good');
				}
	    },
			error: function (jqXHR, exception) {
			var msg = '';
				if (jqXHR.status === 0) {
						msg = 'Нет соединения.\n Проверьте подключение к Интернету.';
				} else if (jqXHR.status == 404) {
						msg = 'Искомая страница не найдена. [404]';
				} else if (jqXHR.status == 500) {
						msg = 'Internal Server Error [500].';
				} else if (exception === 'parsererror') {
						msg = 'Запрос JSON не найден.';
				} else if (exception === 'timeout') {
						msg = 'Истекло время ожидания скрипта!';
				} else if (exception === 'abort') {
						msg = 'Ajax запрос прерван.';
				} else {
						msg = 'Неизвестный тип ошибки!.\n' + jqXHR.responseText;
				}
				msg =  msg+"\n<strong>Если не можете сами исправить пишите мне!</strong>"
				$('#error').show();
				$('#error').append(msg);
			}
	  });


	  setTimeout(function run() {
	    var timer = Cookies.get('Timer');
	    if (timer < 99){
	      if ($("#progress div").css("width") != timer) $("#progress div").css("width", timer+"%");
	      setTimeout(run, 1000);
	    }
	    else {
				$("#progress").hide();
	      $("#result").show();
	    }
	  }, 1000);
});
});

И functions.php
$progress = 0;
for($i=0;$i<100;$i++){
sleep(2);
$progress = $i;
}
echo $progress;


Хотя бы подскажите что читать... Спасибо!

Последний раз редактировалось usesa, 23.09.2016 в 13:47.
Ответить с цитированием