Ir para conteúdo

Arquivado

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

Carcleo

Como posso resolver esse problema?

Recommended Posts

Ola pessoal, to cum seguinte problema, quando o código chega na linha if action2 = "gravarvalores" thenacionada pela instrução javascript document.location.href da linha anterior, na hora de fazer o insert into faq, ele naum recebe os campos vindos do formulario.Como posso resolver esse problema?<% ' ############################# Inclusão ########################### If Request.QueryString("action") = "gravarinclusao" then' campos vindos do formulario DfId_f = request.Form("FormId") DfModulo_f = request.Form("FormModulo") DfPergunta_f = request.Form("FormPergunta") DfMemo_f = request.Form("FormTexto") strSQl = "select * from tbFaq where DfPergunta= '"&DfPergunta_f&"'" Set Rs_FaqPerguntasVerifica = Conn.EXECUTE(strSQl) if not Rs_FaqPerguntasVerifica.eof then if Rs_FaqPerguntasVerifica("DfModulo") = DfModulo_f then response.write "<script>alert('Já existe esta pergunta cadastrda, por favor altere-a!'); document.location='faq.asp?action=editar'</script>" else response.write "<script>if (confirm('Já existe esta pergunta cadastrda em outro módulo. Prosegue?')){document.location.href='faq.asp?action=gravarinclusao&action2=incluivalores'} else {document.location.href='faq.asp?action=incluir'}</script>" if action2 = "gravarvalores" then strSQlInsert = "INSERT INTO tbFaq(DfModulo, DfPergunta, DfMemo, DfAutor) values('"&DfModulo_f&"' , '"&Replace(DfPergunta_f,"'","''")&"', '"&Replace(DfMemo_f,"'","''")&"' , '"&trim(Nome_usu)&"')" Set Rs_FaqInsert = Conn.EXECUTE(strSQlInsert) if Err.Number = 0 then response.write "<script>alert('Inclusão efetuada com sucesso!'); document.location='faq.asp?action=incluir'</script>" else response.write "<script>alert('Erro. Tente de Novo!'); document.location='faq.asp?action=incluir'</script>" end if end if end if else strSQlInsert = "INSERT INTO tbFaq(DfModulo, DfPergunta, DfMemo, DfAutor) values('"&DfModulo_f&"' , '"&Replace(DfPergunta_f,"'","''")&"', '"&Replace(DfMemo_f,"'","''")&"' , '"&trim(Nome_usu)&"')" Set Rs_FaqInsert = Conn.EXECUTE(strSQlInsert) if Err.Number = 0 then response.write "<script>alert('Inclusão efetuada com suscesso!'); document.location='faq.asp?action=incluir'</script>" else response.write "<script>alert('Erro. Tente de Novo!'); document.location='faq.asp?action=incluir'</script>" end if end if end if' ############################# Fim da Inclusão ###########################%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

brother, dá um response.write nos dados vindos do formulario, pra ver se eles estao chegando certo.Se nao der.. muda o modo de receber eles..Coloca apenas Request("nome_do_campo")

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu percebi é que quando eu redireciono para o action2 pelo javascvript, dai em diante ele ja nao pega os dados do form.parece quie depois do rediorewcionamento ele sai do bloco de codigo.ta muito diicil!

Compartilhar este post


Link para o post
Compartilhar em outros sites

entaumquando você sai de uma pagina pra outra, você dá um Submit no Form, ou você redireciona?Se nao der submit.. você nao vai conseguir pegar com request..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da sóp uma olhada no código todo la em cima.To usando assim pra redirecionar:/// Se responder que sim, ta fazendo o redirect mas os dasdos do form naum vem, e se nao cancela a ação.response.write "<script>if (confirm('Já existe esta pergunta cadastrda em outro módulo. Prosegue?')){document.location.href='faq.asp?action=gravarinclusao&action2=incluivalores'} else {document.location.href='faq.asp?action=incluir'}</script>"if action2 = "gravarvalores" then strSQlInsert = "INSERT INTO tbFaq(DfModulo, DfPergunta, DfMemo, DfAutor) values('"&DfModulo_f&"' , '"&Replace(DfPergunta_f,"'","''")&"', '"&Replace(DfMemo_f,"'","''")&"' , '"&trim(Nome_usu)&"')"Set Rs_FaqInsert = Conn.EXECUTE(strSQlInsert) if Err.Number = 0 thenresponse.write "<script>alert('Inclusão efetuada com sucesso!'); document.location='faq.asp?action=incluir'</script>"elseresponse.write "<script>alert('Erro. Tente de Novo!'); document.location='faq.asp?action=incluir'</script>"end if end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara no lugar de else {document.location.href='faq.asp?action=incluir'}você terá que submeter o form, tipo asssimelse {nomedoform.submit()}</

Compartilhar este post


Link para o post
Compartilhar em outros sites

O meu problema nao é o else(caso nao for pra nada), e sim com o Ifif (confirm('Já existe esta pergunta cadastrada em outro módulo. Prosegue?')){document.location.href='faq.asp?action=gravarinclusao&action2=incluivalores'}Quando chego no action2=incluivalores, os dados do form se perdem.Parece que to mudando de pagina.Preciso arrumar um geito de submeter os dados do formulari junto com o link, tipo campos vindos do formularioDfId_f = request.Form("FormId") DfModulo_f = request.Form("FormModulo") DfPergunta_f = request.Form("FormPergunta") DfMemo_f = request.Form("FormTexto") if (confirm('Já existe esta pergunta cadastrada em outro módulo. Prosegue?')){document.location.href='faq.asp?action=gravarinclusao&action2=incluivalores&DfId_f = request.Form("FormId") &DfModulo_f = request.Form("FormModulo")&DfPergunta_f = request.Form("FormPergunta")&DfMemo_f = request.Form("FormTexto") '}Sacou?Mas assim num ta funcionando..

Compartilhar este post


Link para o post
Compartilhar em outros sites

de qualquer forma onde você envia deve usar um submit...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para você pegar os dados usando o Request, eles precisam ser enviados para a proxima pagina, senao eles sao perdidos!Se você somente redirecionar, você teria que enviar no link, todos os parametros, para poder pegar na proxima paginaPor isso é mais facil ao invés de redirecionar, dar um SUBMITEntendeu?Muda lá.. ao inves de redirecionar.. da submit

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só entendi mas isso num resolve.

 

Eu tenho um form que envia via Post os dados para serem processados certo?

 

Dai os dados submetidos sao interpretasdos(coletados) pelo asp da forma VarAsp = Request.form("itemForm"), certo?

 

campos vindos do formularioDfId_f = request.Form("FormId") DfModulo_f = request.Form("FormModulo") DfPergunta_f = request.Form("FormPergunta") DfMemo_f = request.Form("FormTexto")
Daí eu começo o processamento:

 

Se a pergunta ja foi cadastrada para um mesmo módulo, o script manda alterar a pergunta ja cadastrada...

 

if Rs_FaqPerguntasVerifica("DfModulo") = DfModulo_f thenresponse.write "<script>alert('Já existe esta pergunta cadastrda, por favor altere-a!'); document.location='faq.asp?action=editar'</script>"
Se não, o script manda perguntar se quer gravar a mesma pegunta pra outro módulo.

 

elseresponse.write "<script>if (confirm('Já existe esta pergunta cadastrda em outro módulo. Prosegue?')){document.location.href='faq.asp?action=gravarinclusao&action2=incluivalores'} else {document.location.href='faq.asp?action=incluir'}</script>"
SE a resposta for sim, o javascript envia os dados pra um outro bloco de código asp, que vai precisar pegar os dados do formulario que nao estao chegando

 

if Request.querstring("action2") = "gravarvalores" then strSQlInsert = "INSERT INTO tbFaq(DfModulo, DfPergunta, DfMemo, DfAutor) values('"&DfModulo_f&"' , '"&Replace(DfPergunta_f,"'","''")&"', '"&Replace(DfMemo_f,"'","''")&"' , '"&trim(Nome_usu)&"')"Set Rs_FaqInsert = Conn.EXECUTE(strSQlInsert) if Err.Number = 0 thenresponse.write "<script>alert('Inclusão efetuada com sucesso!'); document.location='faq.asp?action=incluir'</script>"elseresponse.write "<script>alert('Erro. Tente de Novo!'); document.location='faq.asp?action=incluir'</script>"end if end if
O problema é esse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

simmas você entendeu?você envia os dados do formulario para uma pagina asp.Essapagina captura direitinho.Mas, se essa pagina enviar o processamento para outra pagina, todos os dados do formulario serão perdidos.A MENOS que você.. ou crie session com eles, ou envie os dados do formulario no link, na hora do redirecionamento.A ideia é essa..

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra que mandar pra outro lugar??use os dados faça um select se já existe altera senão insere...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe é assim:

if not Rs_FaqPerguntasVerifica.eof then       if trim(Rs_FaqPerguntasVerifica("DfModulo")) = trim(DfModulo_f) then             response.write "<script>alert('Já existe esta pergunta cadastrda, por favor altere-a!'); document.location='faq.asp?action=editar'</script>"    else       response.write "<script>if (confirm('Já existe esta pergunta cadastrada em outro módulo. Prosegue?')){document.location.href='faq.asp?action=gravarinclusao&action2=gravarvalores&DfModulo_f="&DfModulo_f&"&DfPergunta_f="&DfPergunta_f&"&DfMemo_f="&DfMemo_f&"'} else {document.location.href='faq.asp?action=incluir'}</script>"             if Request.QueryString("action2") = "gravarvalores"  then 	                 strSQlInsert = "INSERT INTO tbFaq(DfModulo, DfPergunta, DfMemo, DfAutor) values('"&Request.QueryString(DfModulo_f)&"' , '"&Request.QueryString(Replace(DfPergunta_f,"'","''"))&"', '"&Request.QueryString(Replace(DfMemo_f,"'","''"))&"' , '"&trim(Nome_usu)&"')"                Set Rs_FaqInsert = Conn.EXECUTE(strSQlInsert)                  if Err.Number = 0 then                   response.write "<script>alert('Inclusão efetuada com sucesso!'); document.location='faq.asp?action=incluir'</script>"                else                   response.write "<script>alert('Erro. Tente de Novo!'); document.location='faq.asp?action=incluir'</script>"                end if	    end if    end if  

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nos testes que fiz, puz uma variavel asp DfModulo_f num codigo javascript Confirm, e percebi que ate ali a variavel vai bem, só que eu preciso dela é na segunda parte do javascript como segue o código:

response.write "<script>if (confirm('Já existe esta pergunta cadastrada em outro módulo. Prosegue "&DfModulo_f&"?')){document.location.href='faq.asp?action=gravarinclusao&action2=gravarvalores&DfModulo_f="&DfModulo_f&"&DfPergunta_f="&DfPergunta_f&"&DfMemo_f="&DfMemo_f&"'} else {document.location.href='faq.asp?action=incluir'}</script>"

E agora, como fazer a variavel asp chegar na 2ª parte do JavaScript

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem.. eu deletei um dos posts que tinha praticamente a mesma coisa.quando postar algo errado.. e perceber.. você pode usar o botao editar.agora.. me explica, qual das partes é a '2ª parte'o que aquele action faz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue o código completo:

 

<%  ' #############################   Inclusão   ###########################   If Request.QueryString("action") = "gravarinclusao" then       DfId_f = request.Form("FormId")	       DfModulo_f = request.Form("FormModulo")	       DfPergunta_f = request.Form("FormPergunta")	       DfMemo_f = request.Form("FormTexto")	               strSQl = "select * from tbFaq where DfPergunta= '"&DfPergunta_f&"'"       Set Rs_FaqPerguntasVerifica = Conn.EXECUTE(strSQl)          if not Rs_FaqPerguntasVerifica.eof then       if trim(Rs_FaqPerguntasVerifica("DfModulo")) = trim(DfModulo_f) then             response.write "<script>alert('Já existe esta pergunta cadastrda, por favor altere-a!'); document.location='faq.asp?action=editar'</script>"          else             response.write "<script>if (confirm('Já existe esta pergunta cadastrada em outro módulo. Prosegue?')){document.location.href='faq.asp?action=gravarinclusao&action2=incluivalores'} else {document.location.href='faq.asp?action=incluir'}</script>"             if action2 = "gravarvalores"  then 	             strSQlInsert = "INSERT INTO tbFaq(DfModulo, DfPergunta, DfMemo, DfAutor) values('"&DfModulo_f&"' , '"&Replace(DfPergunta_f,"'","''")&"', '"&Replace(DfMemo_f,"'","''")&"' , '"&trim(Nome_usu)&"')"                Set Rs_FaqInsert = Conn.EXECUTE(strSQlInsert)                  if Err.Number = 0 then                   response.write "<script>alert('Inclusão efetuada com sucesso!'); document.location='faq.asp?action=incluir'</script>"                else                   response.write "<script>alert('Erro. Tente de Novo!'); document.location='faq.asp?action=incluir'</script>"                end if	    end if    end if         else          strSQlInsert = "INSERT INTO tbFaq(DfModulo, DfPergunta, DfMemo, DfAutor) values('"&DfModulo_f&"' , '"&Replace(DfPergunta_f,"'","''")&"', '"&Replace(DfMemo_f,"'","''")&"' , '"&trim(Nome_usu)&"')"          Set Rs_FaqInsert = Conn.EXECUTE(strSQlInsert)            if Err.Number = 0 then             response.write "<script>alert('Inclusão efetuada com suscesso!'); document.location='faq.asp?action=incluir'</script>"          else             response.write "<script>alert('Erro. Tente de Novo!'); document.location='faq.asp?action=incluir'</script>"          end if            end if       end if' #############################   Fim da Inclusão   ###########################%>  

Aqui o Formulario

 

<%' #############################   Form de Inclusão   ###########################   If Request.QueryString("action") = "incluir" Then  %></div><p><center><table cellspacing="0" cellpadding="2" border="0" width="580" bgcolor="#8193A7"><tr>    <td align="center" valign="middle" class="toptab"><p><B>:: Inclusão de Documentos ::</B>          <br>          <%            sNomForm = "formInsere"'Recebe o nome do formulario principal da pagina            sNomCampo = "FormTexto"' Recebe o nome do campo que vai armazernar as alterações no editor            sValInicialCampo = ""'Receber o valor que vem do banco de dados para o editor            strSQl = "select * from tbModulo"            Set Rs_FaqSelectInsert = Conn.EXECUTE(strSQl)            %></p>           <link href="../JSeditor/css/aec.css" rel="stylesheet" type="text/css">              <form action="faq.asp?action=gravarinclusao" method=POST  name="formInsere" id="form" onsubmit="document.<%=sNomForm%>.<%=sNomCampo%>.value = Composition.document.body.innerHTML">           <P>  <TABLE cellSpacing=5 cellPadding=0 width="100%" border=0 bgcolor="#D3DBDE">  <TR>   <TD vAlign=center width=65 align=right>Módulo:</TD>   <TD><select name="FormModulo">                        <OPTION value="" selected>Escolha o Módulo</OPTION>                        <%  	 DesenharTabela=True  	 if not Rs_FaqSelectInsert.eof then       Do Until Rs_FaqSelectInsert.Eof=true                               DfModuloInsert = Rs_FaqSelectInsert("DfNome")         DfIdInsert = Rs_FaqSelectInsert("DfId")                              Response.write "<option value="&DfIdInsert&">"&DfModuloInsert&"</option>"         Rs_FaqSelectInsert.MoveNext                    Loop 	 else              response.Write("Não Há Módulos Cadastrados")  	 END IF  	 %>              </select>  </TD>  </TR>  <TR>   <TD vAlign=center width=65 align=right>Pergunta:</TD>   <TD><INPUT size=50 name=FormPergunta value=""></TD>  </TR>  <TR>   <TD vAlign=center width=65 align=right>Texto:</TD>      <TD><!--#include file="JSeditor/editor.asp" --></TD>  </TR>  <TR>   <TD vAlign=top width=130>  </TD>   <TD><input type="submit" class="submit" name="submit" value="Gravar Faq"  onClick="return CriticaFormularioFaqCadastra()"></TD>  </TR>  </TABLE>         </FORM>  </td> </tr></table><%end if' #############################   Fim do Form de Inclusão   ###########################%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara descobri onde esta o erro,

 

Preciso fazer o codigo abaixo:

response.write "<script>if (confirm('Já existe esta pergunta cadastrada em outro módulo. Prosegue?')){</script>"    strSQlInsert = "INSERT INTO tbFaq(DfModulo, DfPergunta, DfMemo, DfAutor) values('"&DfModulo_f&"' , '"&Replace(DfPergunta_f,"'","''")&"', '"&Replace(DfMemo_f,"'","''")&"' , '"&trim(Nome_usu)&"')"Set Rs_FaqInsert = Conn.EXECUTE(strSQlInsert)  if Err.Number = 0 then   response.write "<script>alert('Inclusão efetuada com sucessoooo!'); document.location='faq.asp?action=incluir'</script>"else   response.write "<script>alert('Erro. Tente de Novo!'); document.location='faq.asp?action=incluir'</script>"end if	    response.write "<script>} else {document.location.href='faq.asp?action=incluir'}</script>"
Funcionar da seguinte forma:

response.write "<script>if (confirm('Já existe esta pergunta cadastrada em outro módulo. Prosegue?')){INSTRUÇÃO .ASP, VEJA ELA NO CODIGO ACIMA} else {document.location.href='faq.asp?action=incluir'}</script>"

Ou seja, tertei que por um código asp dentro de um JavaScript.

 

Tentei do geito que esta mas ele nao executa o Confirm() por que o codigo JavaScript num ta todo, tem como contornar essa situação?

 

 

Ou se for o caso, na instrução JavaScript abaixo:

response.write "<script>if (confirm('Já existe esta pergunta cadastrada em outro módulo. Prosegue?')){document.location.href='faq.asp?action2=gravarvalores&DfModulo_f="&DfModulo_f&"DfPergunta_f="&DfPergunta_f&"DfMemo_f="&DfMemo_f&"'} else {document.location.href='faq.asp?action=incluir'}</script>"
a forma que estou enviando parametros com variaveis asp ta certo?

 

document.location.href='faq.asp?action2=gravarvalores&DfModulo_f="&DfModulo_f&"...
Porque quando chega no faq.asp?action2=gravarvalores, ele diz que os dados de entrada nao chegam, e agora?

 

Olha a forma como to recuperando:

<%if Request.QueryString("action2") = "gravarvalores"  then 	    strSQlInsert = "INSERT INTO tbFaq(DfModulo, DfPergunta, DfMemo, DfAutor) values('"&Request.QueryString(DfModulo_f)&"' , '"&Request.QueryString(Replace(DfPergunta_f,"'","''"))&"', '"&Request.QueryString(Replace(DfMemo_f,"'","''"))&"' , '"&trim(Nome_usu)&"')"   Set Rs_FaqInsert = Conn.EXECUTE(strSQlInsert)     if Err.Number = 0 then      response.write "<script>alert('Inclusão efetuada com sucesso!'); document.location='faq.asp?action=incluir'</script>"   else      response.write "<script>alert('Erro. Tente de Novo!'); document.location='faq.asp?action=incluir'</script>"   end if	end if%>
Ta certo Isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao li todo o seu codigo..

 

mas.. o modo de envio de variaveis para a proxima pagina eh assim:

 

pagina.asp?variave1=valor1&variavel2=valor2&variavel3=valor3

 

ta vendo os caracteres coloridos.?

veja se o seu link está com eles.. do jeito certo

 

Pois, você usa eles pra concatenar as variaveis com o link, né?

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.