Chamar função em java script

10 respostas
M

pessoal, estou utilizando asp + js e tento chamar uma função em js mas ela não funciona corretamente…
exemplo:

<script LANGUAGE=JavaScript>	

var k, Qtde, Passou;

Qtde=0;

Passou="";
Passou='&lt;%=xPassou%&gt;';
   
   if (Passou=="true")
   {
     Qtde='&lt;%=xQtdeEnd%&gt;';	   
	   
     xEnd='&lt;%=Vetor(1)%&gt;';
         address=xEnd;
	 		    
         [b]showAddress(address);	[/b]	 
   } 
 &lt;/script&gt;

Obs: Não apssa do 1º alert!!

function showAddress(address)

{	

alert(passou1);
if (geocoder) 
   {		 
	 alert("passou2");
	 geocoder.getLatLng(address, function(point) 
      {
        if (!point) 
         {
           alert("passou3");
		   alert(address + " not found");
         } 
         else 
         {
           alert("passou4");
       map.setCenter(point, 4);
           var marker = new GMarker(point);
           map.addOverlay(marker);
           marker.openInfoWindowHtml(address);
         }
      }
    );		
  }
}

O que estou fazendo de errado??!
Obrigada desde já!!

10 Respostas

S

Onde vc declarou a função, e onde vc chama ela?

P.S.: se colocar entre tags [code] fica mais fácil a leitura para quem está por fora. :)

R

cara onde vc chama showAddress vc define a funcao antes ou chama um include onde ela eh definida ??

qual erro acontece ?

abrasss

M

ela não dá erro, mas tb não funciona...rs
ela entra na função ShowAddres mas pára no 1º alert que coloquei para debug - alert("passou1")

desculpe, sou nova aqui e não sabia que tinha que utilizar as tags
para melhor visualização...

eu vou colocar o código todo aqui, acho que fica melhor de entender...


[code]&lt;% option explicit %&gt;

&lt;!--#include file="conn_mysql.asp"--&gt;


&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"&gt;
  &lt;head&gt;
    &lt;meta http-equiv="content-type" content="text/html; charset=UTF-8"/&gt;
    &lt;title&gt;MASHUPS&lt;/title&gt;
    &lt;script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA" type="text/javascript"&gt;&lt;/script&gt;
    &lt;script type="text/javascript"&gt;

    var map = null;
    var geocoder = null;
	var xEnd;
	var xResult = null;
	 Request.form("Espec") = "";
	 
	 &lt;% 
	  Dim xEndereco, xEsp, xPassou
	  Dim Vetor(1000)
	 %&gt;

	 
	 
	function initialize() 
     {
       map = new GMap2(document.getElementById("map_canvas"));
       map.setCenter(new GLatLng(-21.237660887121, -45.809251627144), 4);
       geocoder = new GClientGeocoder(); 
     }
	
	function showAddress(address)
	{	  
	  alert("passou1");
	  
	  alert(geocoder);
	  
	  if (geocoder) 
       {		 
		 alert("passou2");
		 geocoder.getLatLng(address, function(point) 
          {
            if (!point) 
             {
               alert("passou3");
			   alert(address + " not found");
             } 
             else 
             {
               alert("passou4");
			   map.setCenter(point, 4);
               var marker = new GMarker(point);
               map.addOverlay(marker);
               marker.openInfoWindowHtml(address);
             }
          }
        );		
      }
    }
	
    &lt;/script&gt;
  &lt;/head&gt;

  &lt;body onload="initialize()" onunload="GUnload()"&gt;
   &lt;form action="mapa.asp" method="post" onsubmit="showAddress(this.address.value); return false" &gt;
   
	&lt;table&gt;
     &lt;tr&gt;
      &lt;td&gt;

     &lt;% 
       Dim Conn, RS, SQL, objRecordset
      
       Set Conn = Server.CreateObject("ADODB.Connection")
       Set objRecordset = Server.CreateObject("ADODB.Recordset")
       
       Conn.Open strMySQL
       
       SQL = "Select DESCRICAO from ESP_REST order by DESCRICAO"
       Set RS = Conn.Execute(SQL)     
	  
	    
	   Response.Write "&lt;select name='Espec' size=1 onchange='form.submit()'&gt;"
	   Response.Write"&lt;OPTION&gt;-Selecione a Especialidade-&lt;/OPTION&gt;"	  
	 	   
       do while not RS.EOF
         Response.Write"&lt;OPTION "
         if CInt(Request.Form("Especialidade"))= RS(0) then
            Response.Write"selected "
         end if            
            Response.Write"value='"&RS(0)&"'&gt;"&RS(0)&"&lt;/OPTION&gt;"
			
			     
       RS.MoveNext
       loop  
       Response.Write"&lt;/SELECT&gt;"	   
	   
       RS.close   
	 %&gt;	
	 	 
     &lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt; 
 
     &lt;% 	  
	  Dim xQtdeEnd
	  xQtdeEnd = 0

	  xPassou=&quot;false&quot;
	  
	  if (Request.form(&quot;Espec&quot;) &lt;&gt; &quot;-Selecione a Especialidade-&quot;) then
	    SQL = &quot;Select ENDERECO, CIDADE, UF from RESTAURANTE where COD_ESP='&quot;&Request.form(&quot;Espec&quot;)&&quot;'&quot;
		Set RS = Conn.Execute(SQL)
		
		while not RS.EOF 
		 xQtdeEnd = xQtdeEnd + 1
		 xPassou=&quot;true&quot;
		 xEndereco = RS(&quot;ENDERECO&quot;) & &quot;, &quot; & RS(&quot;CIDADE&quot;) & &quot;, &quot; & RS(&quot;UF&quot;)                  
		 Vetor(xQtdeEnd) = xEndereco
		  
		RS.movenext
        wend
		
		'response.write Vetor(1)
		'response.write Vetor(2)
	  end if 
	  
	  'style=&quot;visibility: hidden&quot;
     %&gt;
   
   
     &lt;script LANGUAGE=&quot;JavaScript&quot;&gt;	   
	   var k, Qtde, Passou;
	   Qtde=0;
	   Passou=&quot;&quot;;
	   
	   Passou='&lt;%=xPassou%&gt;';
	   
	   if (Passou=="true")
	   {
	     Qtde='&lt;%=xQtdeEnd%&gt;';	   
		   
	     xEnd='&lt;%=Vetor(1)%&gt;';
		 address=xEnd;
		 		   
	     showAddress(address);
		 
	   } 
     &lt;/script&gt;
   
   
      <p>
        &lt;input type="text" size="60" name="address" id="address"/&gt;
        &lt;input type="submit" name="buscar" value="Go!" /&gt;
      </p>
      &lt;div id="map_canvas" style="width: 100%; height: 486px"&gt;&lt;/div&gt;
 

 &lt;/form&gt;
 
 &lt;/body&gt;
&lt;/html&gt;

Obrigada pela atenção!!

S

O q exatamente essa variável geocoder guarda?
Ah, acho que não é esse o problema, mas tá faltando um fecha-parênteses na linha abaixo do alert(“passou2”).
Provavelmente o segundo alerta não tá funcionando pq geocoder é uma variável que guarda um objeto, e portanto não é string. Assim, não tem nada para ser escrito. É como se desse println em uma variável que instancia uma classe no Java.
Tenta modificar para um campo de geocoder que tenha texto.

M

a função ShowAddress funciona qdo aperto o botão “GO!”, porém qdo chamo apenas a função, como estou fazendo, ela não funciona…por isso não entendo…

Então…essa função é uma função já pronta do google…qdo dou um alert na variavel geocoder ele mostra [object Object] qdo clico no botão, e mostra null qdo apenas chama a função…

obrigada pela ajuda aí!!

M

mais nenhuma dica???

S

Pois é, tá estranho esse negócio aí! Parece q tá saindo da função antes da hora.
Eu ia perguntar se tu tem certeza q a variável passou é true, mas se entra na função é porque é.

M

consegui essa parte aí!! obrigada!!
mas estou com outro problema…por que o break da função abaixo não funciona?? alguém sabe??
essa função eu fiz para retirar duplicidade de informação num combobox

function retiraOption(Especialidade, Qtde2)
	{		
	 var x;
	  for (x=0;x&lt;=Qtde2;++x)	   
	   if (document.mapa['Espec'].options[x].value == Especialidade)
		{	  
		  document.mapa['Espec'].remove(x);
		  break;
		} 	 	
	}
S

Duvido que seja isso…
Mas tenta circundar o bloco for com duas chaves.
E cuida por que incremento pré-fixado incrementa antes de usar, o que significa que esse bloco vai começar no 1 e não no 0.

D

mceci1984:
consegui essa parte aí!! obrigada!!
mas estou com outro problema…por que o break da função abaixo não funciona?? alguém sabe??
essa função eu fiz para retirar duplicidade de informação num combobox

Tente colocar um return no lugar do break. As vezes dependendo do seu browser pode da erro de compatibilidade =\

Criado 11 de junho de 2009
Ultima resposta 15 de jul. de 2009
Respostas 10
Participantes 4