Ir para conteúdo

POWERED BY:

Arquivado

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

Sergio Fleury

Problema com método POST usando jQuery

Recommended Posts

Boa tarde pessoal,

 

Estou tentando mudar o sistema de impressão do http://geo.saocarlos.sp.gov.br/index_bocelli.php (o servidor é do governo e de vez em quando fica off). Notem logo acima do mapa a palavra "Imprimir", um botão provisório até que consiga fazer funcionar o novo métodos. Se alguém tiver curiosidade, o projeto oficial é este http://geo.saocarlos.sp.gov.br/ (o primeiro link é a antiga versão que eu estou usando para testes).

 

Ao clicar em "Imprimir" o sistema usa a função "printArea" (está em um arquivo separado, mas funciona ok) para pegar o código HTML da div "main_map" e o transforma na variável "varMapa" (acompanhe no código abaixo pra entender melhor).

 

Como podem ver, antes de prosseguir, criei um alert para ver o valor da variável.

 

Depois disto, a linha $('#img_val').val( varMapa ) altera o value do campo input "img_val" dentro do form "myForm". A linha seguinte, não é segredo, envia os dados do form.

<script>

$("div#imprimirMapa").click(function(){
							    	
  var varMapa = $("div#main_map").printArea();
					
  alert( varMapa );
										
  //Altera o value do input e envia o form
  $('#img_val').val( varMapa );
  document.getElementById("myForm").submit();
					
</script>

Vou postar o trecho do form, apesar de ser simples:

<form method="POST" action="imprime_canvas.php" id="myForm">
    <input type="hidden" name="img_val" id="img_val" value="" />
</form>         

O código PHP do arquivo "imprime_canvas.php" apenas recebe o código e faz um print(). O código funciona, ou seja, aparece o mapa (um arquivo PNG com nome aleatório e os desenhos adicionais) no seu preterido lugar.

 

O problema acontece quando usamos a ferramenta de medida de distâncias, ou a ferramenta de medidas de áreas, ou a ferramenta que define círculos (são aqueles ícones verdes no cabeçalho) para fazer desenhos sobre o mapa.

 

Percebi o seguinte: se você fizer um desenho com um numero grande de retas, ou 1 círculo (geralmente é formado por 100 pontos), a variável "varMapa" fica muito extensa e o resultado (o mapa composto) não é impresso na tela. Em contrapartida, quando o desenho feito usando as ferramentas tem poucos pontos, o código funciona.

 

Como resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum.. qual o valor da variavel varMapa em ambos casos ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum.. qual o valor da variavel varMapa em ambos casos ?

 

O valor da variável varMapa sempre será o código HMTL da div em que está o mapa.

 

Você pode conferir o valor quando clicar no botão Imprimir, pois coloquei um alert(varMapa) para ver o resultado.

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.