Ir para conteúdo

POWERED BY:

Arquivado

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

marcelocardoso

[Resolvido] passar parametros em javascript

Recommended Posts

Olá amigos!

 

gostaria da ajuda dos colegas, tenho este script aqui:

 

onChange="combo.action='menu_newsletter_atualizacateg.asp?codigocategoria='+this.value; combo.submit();"

Mas preciso incluir em asp estas linhas aqui:

&ancora="<%=ObjRS("ID")%>"&paginacao="<%=PagAtual%>"&

Alguém me ajuda?

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se captei o que queres.

 

Porém vai uma sugestão:

<%
'Jogue o recordset para uma variável
id = ObjRS("ID")
%>

onchange="combo.action='menu_newsletter_atualizacateg.asp?codigocategoria='+this.value + '&ancora=<%=id%>&paginacao=<%=PagAtual%>'; combo.submit();"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo!

 

Obrigado pela dica, mas estou usando este código aqui, mas não sei oque está havendo, não carrega página nenhuma ao escolher um item no combo:

 

<form method="post" name="combo" target="_parent" id="combo">
<div align="center">
<%
 SQL = "SELECT * FROM News WHERE NewsletterEmailCateg ORDER BY ID ASC"
 SET CT = Server.CreateObject("ADODB.RECORDSET")
     CT.Open SQL, ObjCX, 3
%>
                    
                    <select name="categoriaescolhida" size="1" id="categoriaescolhida" onchange="combo.action='menu_newsletter_atualizacateg.asp?codigocategoria='+this.value + '&ancora=<%=ObjRS("ID")%>&paginacao=<%=PagAtual%>'; combo.submit();">
                      <% 
WHILE NOT CT.EOF 
%>
                      <option value=<%=CT("NewsletterEmailCateg")%> <% IF CT("NewsletterEmailCateg") = ObjRS("NewsletterCateg") THEN %> selected <% END IF %>><%=CT("NewsletterEmailCateg")%></option>
                      <%
CT.MoveNext
    Wend
%>
                    </select>
                    
</div>
     </form>

poderiam me ajudar nisso, acredito que esteja errado alguma coisa, mas não minha cabeça tenho como correto.

mas posso não estar enchergando alguma coisa.

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

No onchange:

onchange="combo.action='menu_newsletter_atualizacateg.asp?codigocategoria='+this.value + '&ancora=<%=ObjRS("ID")%>&paginacao=<%=PagAtual%>'; combo.submit();"

você esta utilizando "" com dentro de "" do onchange.

 

Tenta trocar:

onchange='combo.action='menu_newsletter_atualizacateg.asp?codigocategoria='+this.value + '&ancora=<%=ObjRS("ID")%>&paginacao=<%=PagAtual%>; combo.submit();'

E onde esta sendo carregado ObjRS?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá JOTHAZ e amigos!

 

Consegui arrumar, realmente era erro. (mas já consertei)

Mas tem um porem!

 

Estou usando este código em um RECORDSET onde traz varios registros, com esta mesmo COMBO.

Mas quando tenho mais de um registro, ele não funciona o onchange, mas quando só tem um registro no recordset ele funciona.

Acredito que seja, porque se TEM MAIS DE 1 REGISTRO, ele vai ficar sempre com o mesmo ID=COMBO

 

<form method="post" name="combo" target="_parent" id="combo">

Como eu poderia fazer em asp, para ele ir acrescentando no NAME=COMBO e ID=COMBO, numeros, tipo: combo1, combo2, combo3 e etc...

Pois acredito que não funciona, pois a mesma combo não pode ter o mesmo nome igual para todos os registros, tem que variar.

 

Como posso fazer alguma assim no asp?

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

marmmc,

 

Posta o código como esta agora.

Fica mais fácil ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo!

 

Estava agora ha pouco tentando, e tentei adaptar alguma coisa, mas dá erro de buffer. POIS FIZ ASSIM:

<%
 SQL = "SELECT * FROM News WHERE NewsletterEmailCateg ORDER BY ID ASC"
 SET CT = Server.CreateObject("ADODB.RECORDSET")
     CT.Open SQL, ObjCX, 3
%>
<%
            cont = 1
   Do Until cont = ObjRS.RecordCount
        TESTE = "combo" & cont & "<br>"

%>      
               <form method="post" name="<%=TESTE%>" target="_parent" id="<%=TESTE%>">
                    <select name="categoriaescolhida" size="1" id="categoriaescolhida" onChange="<%=TESTE%>.action='update.asp?id=<%=ObjRS("ID")%>&paginacao=<%=PagAtual%>&ancora=<%=ObjRS("ID")%>&codigocategoria='+this.value; <%=TESTE%>.submit();">
                      <% 
cont = cont + 1
       Loop
WHILE NOT CT.EOF 
%>
                      <option value=<%=CT("NewsletterEmailCateg")%> <% IF CT("NewsletterEmailCateg") = ObjRS("NewsletterCateg") THEN %> selected <% END IF %>><%=CT("NewsletterEmailCateg")%></option>
                      <%
CT.MoveNext
    Wend
%>

Usei o exemplo deste loop abaixo acima, mas não dá.

Ele sozinho faz oque preciso, mas no código acima que postei primeiro, dá erro no buffer.

<%
Dim Mensagem
Dim Cont
            cont = 1
   Do Until cont = 300
        TESTE = "combo" & cont & "<br>"
%>


<% = TESTE %>
<% 
cont = cont + 1
       Loop
%>

Veja se consegue me ajudar agora nisso, pois só oque está me faltando.
obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta gerando algum erro ??? numero de erro ???

basicamente o ASP com js é

<script>
var variavelServidor = <%=variavelServidor%>
</script>

e coloca o ID em um loop para o onchange

 

como esta sua conexao com o banco de dados ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo!

 

Não dá erro nenhum, só dá erro no buffer.

Note que este teste aqui funciona legal, e é realmente o que preciso fazer nas combos.

<%
Dim Mensagem
Dim Cont
 cont = 1
 Do Until cont = 300
 TESTE = "combo" & cont & "
"
%>


<% = TESTE %>
<% 
cont = cont + 1
 Loop
%>

 

Aí tentei adaptar este code acima que funciona perfeitamente, mas quando tentei incluir este código do loop no meu código lá em cima no primeiro post, não vai...

 

Pois precisaria que ele me renomeasse cada REGISTRO do ID=COMBO e NAME=COMBO

 

Como por EX:

 

COMBO1 no primeiro registro, COMBO2 no segundo registro e assim sucessivamente até terminar a paginação.

 

Pois notei que se tenho 1 registro só no banco de dados, a COMBO funciona, mas com mais de 1 registro, não vai, acho que porque a COMBO FICA COM O MESMO NOME PARA TODOS OS REGISTROS:

 

<form method="post" name="<%=TESTE%>" target="_parent" id="<%=TESTE%>">

E o que precisaria fazer é que a cada registro, o ID=COMBO fosse ID=COMBO1 depois ID=COMBO2 e assim sucessivamente.

Só não estou sabendo criar aquele loop para colocar numeros alí depois de ID=COMBO(numero).

 

Me expliquei melhor agora?

Compartilhar este post


Link para o post
Compartilhar em outros sites

marmmc,

 

Desculpe a minha lerdeza mas esta difícil enteder o seu problema.

 

Ma se a cada vez que submeter página você quiser incrementar um contador e usá-lo terá de usar uma session.

 

<%
Dim Mensagem
Dim Cont
 cont = 1
 Do Until cont = 300
 TESTE = "combo" & cont & "
"
...
...
%>

Fuciona agora se você estiver submetendo a página sau variável cont esta sempre igualada a 1. Para isto não acontecer use a ssession

 

<%
 SQL = "SELECT * FROM News WHERE NewsletterEmailCateg ORDER BY ID ASC"
 SET CT = Server.CreateObject("ADODB.RECORDSET")
 CT.Open SQL, ObjCX, 3
%>
<%
 cont = 1
...
...
...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que nada JOTHAZ!

 

Eu é que não sei me expressar bem com a programação.

Mas vamos lá agora.

 

OLHE ESTE CÓDIGO DE PAGINAÇÃO QUE ESTOU USANDO, funciona certinho.

<!--#include file="conexao.asp" -->
<HTML>
<HEAD><TITLE>Exemplo de Listagem</TITLE>
<LINK HREF="css.css" REL="stylesheet" TYPE="text/css">
</HEAD>
<BODY>
<%
 IDMAIL = Replace(Trim(Request.QueryString("pesquisar")),"'","")
 IDCATE = Replace(Trim(Request.QueryString("categoriaemail")),"'","")
 PagAtual = Request.QueryString("paginacao")
 MaximoPorPagina = 50

 IF IDMAIL = "" AND IDCATE = "" THEN
 	SQL = "SELECT * FROM Newsletters ORDER BY ID DESC"
 	ELSE
	 	IF IDMAIL <> "" AND IDCATE = "" THEN
 	SQL = "SELECT * FROM Newsletters WHERE (ID LIKE '%" & IDMAIL & "%' OR NewsletterEmail LIKE '%" & IDMAIL & "%') ORDER BY ID ASC"
 	ELSE
			 SQL = "SELECT * FROM Newsletters WHERE (NewsletterEmail LIKE '%" & IDMAIL & "%' AND NewsletterCateg LIKE '%" & IDCATE & "%') ORDER BY ID ASC"
	 	END IF
 END IF
 
 SET ObjRS = Server.CreateObject("ADODB.Recordset") 
 	ObjRS.CursorType = 3
 	ObjRS.CacheSize = MaximoPorPagina
 	ObjRS.PageSize = MaximoPorPagina
 	ObjRS.Open SQL, ObjCX
 IF ObjRS.BOF AND ObjRS.EOF THEN 
%>
<table width="80%" height="80" border="0" align="center" cellpadding="2" cellspacing="2">
 <tr>
	<td><FORM ACTION="<%= REQUEST.SERVERVARIABLES("SCRIPT_NAME") %>" METHOD="get" name="frm" target="_parent" id="frm">
 	<table width="606" height="40" border="0" align="center" class="PRODBORDA">
 	<tr>
 	<td width="3"><div align="right"></div></td>
 	<td width="307"><div align="center">
 	<input name="pesquisar" type="text" id="pesquisar" size="60">
 	</div></td>
 	<td width="209"><%
 	SET CategMaila = ObjCX.Execute("SELECT * FROM NewslettersCateg ORDER BY NewsletterEmailCateg ASC")
 	%>
 	<select name="categoriaemail" id="categoriaemail" style="width: 180px;" size="1" class="BORDER_FORM">
 	<option value="">TODAS</option>
 	<option value=""></option>
 	<% DO WHILE NOT CategMaila.EOF %>
 	<option value="<%=CategMaila("NewsletterEmailCateg")%>"><%=CategMaila("NewsletterEmailCateg")%></option>
 	<%
 	CategMaila.MoveNext
 	Loop
 	SET CategMaila = Nothing
 	%>
 	</select></td>
 	<td width="106"><input name="submeter_formulario" type="submit" id="submeter_formulario" value="Busca"></td>
 	</tr>
 	</table>
	</FORM></td>
 </tr>
</table>
<table width="80%" height="60" border="0" align="center" cellpadding="2" cellspacing="2">
 <tr>
	<td><div align="center"><font color="#0060BF">Não existe nada</font></div></td>
 </tr>
</table>
<% 
 ELSE
 IF Request.QueryString("paginacao") = "" THEN
	PagAtual = 1
 	ELSE
	PagAtual = Request.QueryString("paginacao")
 END IF

 	ObjRS.MoveFirst 
 TotalPages = ObjRS.PageCount
 ObjRS.AbsolutePage = PagAtual 
%>
<table width="80%" height="80" border="0" align="center" cellpadding="2" cellspacing="2">
 <tr>
	<td><FORM ACTION="<%= REQUEST.SERVERVARIABLES("SCRIPT_NAME") %>" METHOD="get" name="frm" target="_parent" id="frm">
 	<table width="609" height="40" border="0" align="center" class="PRODBORDA">
 	<tr>
 	<td width="3"><div align="right"></div></td>
 	<td width="302"><div align="center">
 	<input name="pesquisar" type="text" id="pesquisar" size="60">
 	</div></td>
 	<td width="206"><%
 	SET CategMaila = ObjCX.Execute("SELECT * FROM NewslettersCateg ORDER BY NewsletterEmailCateg ASC")
 	%>
 	<select name="categoriaemail" id="categoriaemail" style="width: 180px;" size="1" class="BORDER_FORM">
 	<option value="">TODAS</option>
 	<option value=""></option>
 	<% DO WHILE NOT CategMaila.EOF %>
 	<option value="<%=CategMaila("NewsletterEmailCateg")%>"><%=CategMaila("NewsletterEmailCateg")%></option>
 	<%
 	CategMaila.MoveNext
 	Loop
 	SET CategMaila = Nothing
 	%>
 	</select></td>
 	<td width="106"><input name="submeter_formulario" type="submit" id="submeter_formulario" value="Busca"></td>
 	</tr>
 	</table>
	</FORM></td>
 </tr>
</table>
<TABLE width="80%" align="center" cellPadding=2 cellSpacing=3>
 <TBODY>
	<TR>
 	<%
 FOR i = 1 TO MaximoPorPagina
%>
 	<TD vAlign=top><TABLE width="100%" height="30" cellPadding=1 cellSpacing=2 bgcolor="<%=cor%>" class=PRODBORDA>
 	<TBODY>
 	<TR>
 	<TD width="32" align=middle valign="middle"><A NAME="<%=ObjRS("ID")%>" ID="<%=ObjRS("ID")%>"></A>
 	<div align="center"><font color="#0060BF"><strong><%=ObjRS("ID")%></strong></font></div></TD>
 	<TD width="836" vAlign=middle><a href="mailto:<%=ObjRS("NewsletterEmail")%>"><%=ObjRS("NewsletterEmail")%></a></TD>
 	<TD width="117" vAlign=middle bgcolor="#EDF5DE"><div align="center" class="FONTE_XTRAS_4">
 	<%
 SQL = "SELECT * FROM NewslettersCateg WHERE NewsletterEmailCateg ORDER BY ID ASC"
 SET CT = Server.CreateObject("ADODB.RECORDSET")
 	CT.Open SQL, ObjCX, 3
%>
 	<form method="post" name="combo" target="_parent" id="combo">
 	<select name="categoriaescolhida" size="1" id="categoriaescolhida" onChange="combo.action='update.asp?id=<%=ObjRS("ID")%>&paginacao=<%=PagAtual%>&ancora=<%=ObjRS("ID")%>&codigocategoria='+this.value; combo.submit();">
 	<% 
WHILE NOT CT.EOF 
%>
 	<option value=<%=CT("NewsletterEmailCateg")%> <% IF CT("NewsletterEmailCateg") = ObjRS("NewsletterCateg") THEN %> selected <% END IF %>><%=CT("NewsletterEmailCateg")%></option>
 	<%
CT.MoveNext
	Wend
%>
 	</select>
 	</form>
</div></TD>
 	</TR>
 	</TBODY>
 	</TABLE></TD>
	</TR>
 </TBODY>
 <%
	ObjRS.MoveNext
 IF ObjRS.EOF THEN
	EXIT FOR
	END IF
	NEXT
%>
</TABLE>
<table width="80%" border="0" align="center" cellpadding="2" cellspacing="4">
 <tr>
	<td><div align="right">
 	<%
 Response.Write("" & PagAtual & " de " & TotalPages & "") 
 IF TotalPages > 1 THEN
%>
	</div></td>
 </tr>
</table>
<BR>
<BR>
<table width="80%" align="center">
 <tr>
	<td align="center"><%
IF Cint(PagAtual) > 1 THEN
%>
 	<a href="newsletters.asp?paginacao=<%=PagAtual-1%>&categoriaemail=<%=IDCATE%>" target="_parent"><</a>   
 	<% 
ELSE
%>
 	<  
 	<%
END IF 
FOR t=1 TO TotalPages
	IF CInt(t) = CInt(PagAtual) THEN 
%>
 	<b><%=t%></b>
 	<%
ELSE
%>
 	<a href="newsletters.asp?paginacao=<%=t%>&categoriaemail=<%=IDCATE%>"><%=t%></a>
 	<% 
END IF 
	IF Cint(t) < TotalPages THEN
%>
 	<%
END IF
NEXT
 	
IF Cint(PagAtual) < TotalPages THEN
%>
 	   <a href="newsletters.asp?paginacao=<%=PagAtual+1%>&categoriaemail=<%=IDCATE%>" target="_parent">></a>   
 	<%
ELSE
%>
 	   >
 	<% 
END IF
%>
	</td>
 </tr>
 <tr>
	<td align="center"> </td>
 </tr>
 <tr>
	<td align="center"> </td>
 </tr>
 <%
END IF
%>
</table>
<%
 END IF
 	ObjRS.Close
 SET ObjRS = Nothing
 	ObjCX.Close
 SET ObjCX = Nothing
%> 
</BODY>
</HTML>

SE testar este code notará que funciona perfeitamente, mas o MEU PROBLEMA é que não consigo fazer esta parte funcionar:

 

 	<form method="post" name="combo" target="_parent" id="combo">
 	<select name="categoriaescolhida" size="1" id="categoriaescolhida" onChange="combo.action='update.asp?id=<%=ObjRS("ID")%>&paginacao=<%=PagAtual%>&ancora=<%=ObjRS("ID")%>&codigocategoria='+this.value; combo.submit();">

Ele até funciona SE TIVER APENAS 1 REGISTRO NO BANCO DE DADOS, mas se tiver mais, a combo não funciona.

Como posso resolver essa parte para funcionar isso com 1 registro ou com mais???

 

 

Tomara que tenha sido mais claro agora.

Obrigado amigos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos ver se entendi!

 

Voce quer incrementar o id do form?

 <form method="post" name="combo" target="_parent" id="combo">

 <form method="post" name="combo1" target="_parent" id="combo1">

 <form method="post" name="combo3" target="_parent" id="combo3">

E depois alterar:

.....combo.submit().
.....combo1.submit() 
.....combo2.submit() 

Seria isto?

 

Tenta concatenar o "<%=ObjRS("ID")%> no id.

Mas é só um sugestão.

 

E me desculpe a franqueza achei muito confuso o código da página. Não leve mal isto é somente uma observação.

 

você teria o link da página para ficar mais fácil ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

SEria isso mesmo amigo.

Quanto a página, não é pra ninguem, mas para mim mesmo aprender.... pois quando estou de bobeiro gosto de aprender um pouco de web...

Mas no que eu poderia mudar este meu codigo confuso, poderia me dizer no que está confuso.

 

Não sou realmente programador, mas gosto de aprender a fazer coisas novas.

Quando ao concatenas, vou tentar fazer oque disse e já retorno.

 

obrigado até aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

TESTEI AQUI agora colocando ao lado de COMBO<%=ObjRS("ID")%> e funcionou mesmo. Que burrice minha, como tenho que pensar mais... e aprender mais...

Valeu meu velho, DEUS te abençoe pela ajuda.

 

TOPICO SOLUCIONADO E ACABADO.

Obrigado a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos!

 

Agora que está resolvido, tenho mais uma vontade de fazer outra coisa.

Nesta combo:

<%
 SQL = "SELECT * FROM News WHERE NewsletterEmailCateg ORDER BY ID ASC"
 SET CT = Server.CreateObject("ADODB.RECORDSET")
 CT.Open SQL, ObjCX, 3
%>
 
 <select name="categoriaescolhida" size="1" id="categoriaescolhida" onchange="combo.action='menu_newsletter_atualizacateg.asp?codigocategoria='+this.value + '&ancora=<%=ObjRS("ID")%>&paginacao=<%=PagAtual%>'; combo.submit();">
 <% 
WHILE NOT CT.EOF 
%>
 <option value=<%=CT("NewsletterEmailCateg")%> <% IF CT("NewsletterEmailCateg") = ObjRS("NewsletterCateg") THEN %> selected <% END IF %>><%=CT("NewsletterEmailCateg")%></option>
 <%
CT.MoveNext
 Wend
%>
 </select>
 
</div>
 </form>

Não tem como eu escolher a opção desejada, e ao invés de chamar esta página

onchange="combo.action='menu_newsletter_atualizacateg.asp?codigocategoria='+this.value + '&ancora=<%=ObjRS("ID")%>&paginacao=<%=PagAtual%>'; combo.submit();"

Ele com ajax, já atualizar isso alí na hora?

Se não me engano já vi isso em algum lugar, mas não sei como usar a busca para procurar isso.

Alguém me ajuda nisso.

 

Seria eu escolher uma opcao no COMBO, e ao invés de enviar para a página de update, ele na hora alí me atualiza, sem ter que ir para a página, mas ir mudando na tela mesmo.

Tem como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá JOTHAZ e amigos!

 

Estou com querendo a ajuda dos colegas se tenho ou posso mudar esta action ONCHANGE para ONCLICK:

 

<select name="categoriaescolhida" size="1" id="categoriaescolhida" onChange="combo<%=ObjRS("ID")%>.action='update.asp?id=<%=ObjRS("ID")%>&paginacao=<%=PagAtual%>&ancora=<%=ObjRS("ID")%>&codigocategoria='+this.value; combo<%=ObjRS("ID")%>.submit();">

Pois preciso junto da OnChange colocar esta abaixo, pois preciso fazer este update com uma div:

</div>
 	<div id="menu"><a href="#" onClick="abrirPag('update.asp?id=<%=ObjRS("ID")%>&paginacao=<%=PagAtual%>&ancora=<%=ObjRS("ID")%>');">Clientes</a></div>
 	<br><br>
 	<div id="conteudo_mostrar"></div>

TEM COMO EU naquele ONCHANGE abrir esta instrução abrirPag

Se tem, alguem poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

XAMBURZUM, seria mais ou menos assim:

 

UNIR O evento onclick no onchange, ou seja; daí ao escolher algo no combo, ele me abrisse a div, e enviaria os dados da url para esta pagina que vou abrir dentro da div.

tem como fazer isso amigos.

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.