Ir para conteúdo

Arquivado

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

DackAle

js + asp

Recommended Posts

E ae galera

 

To precisando de um HELP, estou usado aquela função que torca valores do SELECT automaticamente dependendo do valor do outro SELECT...

 

Bom funciona beleza, mas preciso gerar essa função dinamicamente, tipo o cara escolhe o numero de select box que vai aparecer, dai eu gero os mesmo, isso é facil, mas eu preciso gerar as functions dinamicamente tambem, tentei assim

 

ASP

[*]<%

 

[*]numero request("variasp_numero")

 

[*]'Sendo que número, é o numero de select box que vão ser exgaeros, no caso o usuario escolheu

 

[*]

 

[*]if numero <> "" then

 

[*]FOR I=1 TO Numero

 

[*]Function EscreveFuncaoJavaScript & I ( Conexao )

 

[*]

 

[*]Response.Write "<script language=""JavaScript"">" & vbcrlf 

 

[*]Response.Write "function atualiza (form) {" & vbcrlf

 

[*]

 

[*]Response.Write "switch (form.categorias"&I&".options[form.categorias"&I&".selectedIndex].value) {" & vbcrlf 

 

[*]

 

[*]SQL "SELECT * FROM categorias ORDER BY Nome ASC" 

 

[*]SET RS Server.CreateObject("AdoDB.RecordSet")

 

[*]RS.Open SQL,Conexao

 

[*]

 

[*]While NOT RS.EOF

 

[*]

 

[*]Response.Write "case '" & rs("nome") & "':" & vbcrlf

 

[*]

 

[*]Response.Write "form.variasp_produtos"&I&".length=0;" & vbcrlf 

 

[*]

 

[*]SQL "SELECT * FROM produtos WHERE categoria='" & rs("nome") & "'"

 

[*]Set RS2 Server.CreateObject("AdoDB.RecordSet")

 

[*]RS2.Open SQL,Conexao

 

[*]

 

[*]i = 0 

 

[*]While NOT RS2.EoF

 

[*]

 

[*]Response.Write "form.variasp_produtos"&I&".options[" & i & ] = new Option('" & RS2("nome") & "','" & RS2("nome") & "');" & vbcrlf 

 

[*]i=i+1

 

[*]

 

[*]RS2.MoveNext

 

[*]Wend

 

[*]rs2.close

 

[*]set rs2 = nothing

 

[*]

 

[*]Response.Write "break;" & vbcrlf

 

[*]

 

[*]RS.MoveNext 

 

[*]Wend 

 

[*]rs.close

 

[*]set rs = nothing

 

[*]

 

[*]

 

[*]Response.Write "}}" & vbcrlf & "</script>" & vbcrlf 

 

[*]

 

[*]End Function

 

[*]NEXT

 

[*]End if

 

[*]%>

 

BOm só que da erro aqui

 

Syntax error

 

/teste/painel/add_jantar.asp, line 9

 

Function EscreveFuncaoJavaScript ( Conexao )

^

Nome de Functions não pode ser gerado dinamicamente ? Existe outra forma mais facil ?

 

Abraços e Valeu =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, você cria a Function primeiro... e depois chame-a dentro do FOR e não cria uma Function dentro de um FOR,...Att,Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, você cria a Function primeiro... e depois chame-a dentro do FOR e não cria uma Function dentro de um FOR,...

 

Att,

Carlos

<{POST_SNAPBACK}>

Entendi modifiquei agora, to passnado um parametro a mais, ficou assim

 

numero = request("variasp_numero")Function EscreveFuncaoJavaScript (Conexao,Valor)Response.Write "<script language=""JavaScript"">" & vbcrlf Response.Write "function atualiza (form) {" & vbcrlfResponse.Write "switch (form.categorias"&Valor&".options[form.categorias"&Valor&".selectedIndex].value) {" & vbcrlf SQL = "SELECT * FROM categorias ORDER BY Nome ASC" SET RS = Server.CreateObject("AdoDB.RecordSet")RS.Open SQL,ConexaoWhile NOT RS.EOFResponse.Write "case '" & rs("nome") & "':" & vbcrlfResponse.Write "form.variasp_produtos"&Valor&".length=0;" & vbcrlf SQL = "SELECT * FROM produtos WHERE categoria='" & rs("nome") & "'"Set RS2 = Server.CreateObject("AdoDB.RecordSet")RS2.Open SQL,Conexaoi = 0 While NOT RS2.EoFResponse.Write "form.variasp_produtos"&Valor&".options[" & i & "] = new Option('" & RS2("nome") & "','" & RS2("nome") & "');" & vbcrlf i=i+1RS2.MoveNextWendrs2.closeset rs2 = nothingResponse.Write "break;" & vbcrlfRS.MoveNext Wend rs.closeset rs = nothingResponse.Write "}}" & vbcrlf & "</script>" & vbcrlf End Function
E na hora de chamar faço assim

 

<%If numero <> "" ThenFOR N = 1 TO NumeroEscreveFuncaoJavaScript (Conexao,N) NEXTEnd if%>
Mas da esse erro

 

Cannot use parentheses when calling a Sub

 

/teste/painel/add_jantar.asp, line 70

 

EscreveFuncaoJavaScript ( Conexao, N )

--------------------------------------^

Que bizarro... chmando uma Sub se é function ? rs

 

Alguem sabe a cagada que to fazendo ?

 

Abraços e Valeu =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça como disse o amigo ai em cima, chame usando o Call Function. Explicando o que aconteceu, como sua Function não retorna dados o Server interpreta como se fosse uma SUB, entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aeeeeeeee funcionou perfeitamente, coloquei o Call e arrumei mais uma que estava errado, ficou assim

 

ASP

[*]<%

 

[*]numero request("variasp_numero")

 

[*]

 

[*]Function EscreveFuncaoJavaScript(Conexao,Valor)

 

[*]

 

[*]Response.Write "<script language=""JavaScript"">" & vbcrlf 

 

[*]Response.Write "function atualiza" & valor & " (form) {" & vbcrlf

 

[*]

 

[*]Response.Write "switch (form.categorias"&Valor&".options[form.categorias"&Valor&".selectedIndex].value) {" & vbcrlf 

 

[*]

 

[*]SQL "SELECT * FROM categorias ORDER BY Nome ASC" 

 

[*]SET RS Server.CreateObject("AdoDB.RecordSet")

 

[*]RS.Open SQL,Conexao

 

[*]

 

[*]While NOT RS.EOF

 

[*]

 

[*]Response.Write "case '" & rs("nome") & "':" & vbcrlf

 

[*]

 

[*]Response.Write "form.produtos"&Valor&".length=0;" & vbcrlf 

 

[*]

 

[*]SQL "SELECT * FROM produtos WHERE categoria='" & rs("nome") & "'"

 

[*]Set RS2 Server.CreateObject("AdoDB.RecordSet")

 

[*]RS2.Open SQL,Conexao

 

[*]

 

[*]i = 0 

 

[*]While NOT RS2.EoF

 

[*]

 

[*]Response.Write "form.produtos"&Valor&".options[" & i & ] = new Option('" & trim(RS2("nome")) & "','" & trim(RS2("nome")) & "');" & vbcrlf 

 

[*]i=i+1

 

[*]

 

[*]RS2.MoveNext

 

[*]Wend

 

[*]rs2.close

 

[*]set rs2 = nothing

 

[*]

 

[*]Response.Write "break;" & vbcrlf

 

[*]

 

[*]RS.MoveNext 

 

[*]Wend 

 

[*]rs.close

 

[*]set rs = nothing

 

[*]

 

[*]Response.Write "}}" & vbcrlf & "</script>" & vbcrlf 

 

[*]

 

[*]End Function

 

[*]%>

 

ASP

[*]<%

 

[*]If numero <> "" Then

 

[*]FOR N = 1 TO Numero

 

[*]Call EscreveFuncaoJavaScript (Conexao,N) 

 

[*]NEXT

 

[*]End if

 

[*]%>

 

Valeu galera fico perfeito =)

 

Abraç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.