Ir para conteúdo
Fórum Script Brasil
  • 0

Como mudar o método "action" do formulário?


Vinicci

Pergunta

Bom dia pessoal!

Pois bem, estou desenvolvendo uma página de registro de usuário em asp.

Na página do formulário de registro (registro.asp), tem um formulário com os campos cadastrais, sendo estes nome, login, senha e perfil de acesso do usuário. Para gravar esses dados nas tabelas eu preciso primeiro saber o perfil escolhido pelo usuário na hora do cadastro, pois dependendo da opção selecionada numa listbox eu então gravarei os demais dados em tabelas diferentes.

Para que os senhores possam entender melhor:

1) Tenho a listbox com as opções preenchidas com dados de uma tabela (tblPerfil)

2) Quero saber qual foi a opção escolhida da listbox pelo usuário.

3) Sabendo a opção que foi selecionada pelo usuário, vou gravar os dados desse formulário em tabelas diferentes, de acordo com os 3 tipos de usuários que há no sistema (Administrador, Professor e Aluno). Ex.: se foi escolhida a opção Administrador na listbox, irei gravar os dados do campo nome do formulário na tabela de "Administrador", em sua respectiva coluna e se foi escolhida a opção "Aluno" irei gravar os dados do campo nome do formulário na tabela de "Aluno" em sua respectiva coluna.

Ok, até aí sem problemas, certo? O problema mesmo é na hora de enviar os dados do formulário.

O fomulário envia os dados para uma página externa que faz o registro dos dados nas tabelas (addRegistro.asp).

O meu dilema está em como pegar a opção selecionada do listbox. Estava tentando usar o método 'onchange' na listbox, porém o submitseria feito com javascript, e o método 'action' do formulário teria que ser outro (a própria página atual), mas como disse anteriormente o formulário envia os dados do formulário para outra página (addRegistro.asp).

Podem me ajudar como fazer isso?

Estava tentando o evento 'onchange' do listbox, assim que o usuário selecionasse uma das opções, esse valor seria submetido para a mesma página e eu já saberia onde gravar os demais dados do formulário, porém eu não consegui dessa maneira, pois o método 'action' do form deve estar setado para a página 'addRegistro.asp' para gravar os dados dos campos nas tabelas.

Espero ter sido claro o suficiente. Sou iniciante em início em ASP, estou fazendo um trabalho de faculdade e minha referência para fazer esse projeto é só a net mesmo.

Aí vai o código fonte para melhor assimilação:

<%Option explicit
Dim obrec, conexao, connect, strSQL

set conexao=server.CreateObject ("adodb.connection")
connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("..\avaliacao.mdb") & ";Persist Security Info=False"
conexao.Open connect
%>

<html>
      <head>    
          <script language="javascript">
            <!--
                function subperfil(frmperfil) {
                    frmperfil.submit();
                    }
            //-->
        </script>
    </head>
    
    <body>
    
        <h1 class="regstick">Registrar</h1>
        <br />
        <div id="regbox">
            <form id="registrar" name="registrar" method="post" action="addRegistro.asp">
                <div id="campos">
                    <p>Nome: <input id="regnome" type="text" name="nome" /></p>
                    <p>Login: <input id="reglogin" type="text" name="login" /></p>
                    <p>Senha: <input id="regsenha" type="text" name="senha" /></p>
                    <p>Perfil: 
                        <select id="regperfil" name="regperfil" LANGUAGE="javascript" onchange="subperfil(frmperfil)">
                            <%
                                Set obrec=Server.CreateObject("ADODB.Recordset")
                                strSQL="SELECT DISTINCT PrfPerfil FROM tblPerfil"
                                strSQL=strSQL & " ORDER BY PrfPerfil"
                                obrec.Open strSQL, conexao
                            
                                Do while not obrec.EOF
                                    if Request.Form("regperfil")=obrec("PrfPerfil") then
                                        Response.Write "<option value='"& obrec("PrfPerfil") &"' selected>"
                                        Response.Write obrec("PrfPerfil") & "</Option>"
                                        obrec.MoveNext
                                    else
                                        Response.Write ("<OPTION VALUE = '"& obrec("PrfPerfil") & "'>")
                                        Response.Write obrec("PrfPerfil") & "</Option>"
                                        obrec.MoveNext
                                    end if
                                loop
                            %>
                        </select>
                    </p>
                    </form>
                </div><p>Perfil = <%=Request.Form("regperfil")%></p>
            </form>
            <p>
                <input id="regsub" name="registrarbtn" type="submit" value="Registrar" />
                <input id="regcancel" name="cancelbtn" type="submit" value="Cancelar" />
            </p>
        </div>
    </body>
</html>

Agradeço desde já!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Parceiro, toda vez que você usar o action do form você será redirecionado, a sulução é usar o ajax, onde uma requisição pode ser feita com um método js mesmo, não precisando assim ser utilizado o action do form. Akeleabrass

Editado por Rafael Laurindo
Link para o comentário
Compartilhar em outros sites

  • 0
Parceiro, toda vez que você usar o action do form você será redirecionado, a sulução é usar o ajax, onde uma requisição pode ser feita com um método js mesmo, não precisando assim ser utilizado o action do form. Akeleabrass

Muito obrigado Rafael pela dica. Vou experimentar pesquisar algo com Ajax. Estava pesquisando e me parece que com puro java script dá para mudar o documento do action do formulário. Tentei usar dois fomulários no HTML mas não funcionou, o fomulário sempre envia os dados através do action do primeiro formulário da hierarquia.

Abraço.

Feliz Natalz! (a todos)
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...