Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tubadc

salvar multiplos pdfs "por trás" , e avisar ao terminar...

Recommended Posts

Olá galera... seguinte

 

Tenho que gerar um série de invoices em pdf a partir de dados em minha base...

 

Já fiz um script que gera o pdf com as infos que preciso porém, o usuário que irá utilizar o sistema irá gerar de 100 em 100 invoices por vez, então gostaria de que quando o usuário mandar gerar o relatório ele não precise ficar com o browser aberto, ou um popup... gostaria que fosse salvando por trás ( apenas no server) e que o usuário ficasse livre para continuar navegando, e quando gerar o último eu aviso ele por msg...

 

Tem alguma forma de desencadear esta ação sem ser via cronjob? pois para gerar os relatórios o usuário tem de estar logado...

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abre em um iframe invisivel... com os dados para salvar em get...

Dai escreve tipo... dai manda um alert javascript do tipo...

Os dados estão sendo salvos... e você pode continuar navegando em nosso site até receber a mensagem de "concluissão"...

Dai quando acaba tu manda um outro alert através do iframe...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abre em um iframe invisivel... com os dados para salvar em get...

Dai escreve tipo... dai manda um alert javascript do tipo...

Os dados estão sendo salvos... e você pode continuar navegando em nosso site até receber a mensagem de "concluissão"...

Dai quando acaba tu manda um outro alert através do iframe...

 

Você pode fazer um verificador em JavaScript, que consulta o servidor de tempos em tempos.

Grava na sessão alguma informação dizendo "tem invoices na fila". Então, essa informação é passada para o javascript, que chama o servidor. Quando a fila esgotar, limpa a informação da sessão.

 

var hasInvoices = <?php echo !empty($_SESSION['invoices']) ? 'true' : 'false'; ?>;

// executa a checagem a cada 2 segundos (2000 milisegundos)
var interval = setInterval(function(){
	if( hasInvoices ){
		// usando jquery
		$.post('caminho/do/server/para/checar.php', null, function(res){
			if( res == 'terminou' ){
				alert("Os invoices foram gerados com sucesso!");
				hasInvoices = false;
				// limpa o intervalo
				clearInterval( interval );
			}
		});
	}
}, 2000);

@braços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.