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

Inserindo Dados Por Partes ...


Fabiana Silva

Pergunta

Oláaaa Pessoas,

Preciso de uma ajudinha... smile.gif Por isso vou explicar o que fiz e o problema por partes !!

Tenho uma pagina com um formulario que ao se abrir tem este formulário duplicado de acordo com a quantidade de registros em um select

Exemplo

a página se abre e um select é executado retornando tres registros 1-João 2-Maria 3-José

Sendo assim o formulário será replicado para cada um deles, teremos então os campos do formulario repetidos tres vezes na tela

(isso porque preciso captar dados destas tres pessoas)

O formulario tem um botão que servirá para inserir os dados em uma tabela

Então quando eu colocar os dados o João clico no botão e salvo, depois coloco os dados da maria, salvo e finalmente o José e salvo

Agora justificando o porque preciso que tudo fique na mesma tela, 1º porque foi definido por ordens superiores (hehhee) depois porque no final terei que fazer um cálculo e atualizar uma tabela que sera executado atraves de um outro botão que so sera liberado quando todos os dados tres individuos estiverem sido inseridos.

eu pensei em criar um evento para o botão 1 para inserir os dados do formulario corrente... mas não sei se esta é a melhor solução e não sei como chamar um evento de um botão,

enfim pessoal ... não sei se deu pra entender .. mas é isso ai.

Como vocês sabem não manjo muito de asp, então me perco quando tenho que criar eventos ou chamar outra página... a liguagem até que não é problema, o que pega mesmo e a estrutura ...

desde já agradeço...e desculpe-me pelo texto enorrrrrme....

bjim

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

olá fabi.

eu não entendi muito bem..

mas vamos ver:

- na pagina, você cria 3 formularios. um para cada pessoa. em cada formulario tem X dados. você Traz do banco os dados, e joga nos "TEXT"?

você quer fazer o que?

ALterar do 1º, clicar em GRAVAR, e Salvar os dados do 1º, e depois voltar pra mesma tela? Com a opção de gravar para os 3 de novo?

Quando você clica no GRAVAR, grava apenas daquele que você clicou o botao, e os outros não faz nada?

Explica denovo.. que fiquei confuso..

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

putz foi mal, Dark0 (e ai, beleza? smile.gif )

Bom, vamos la

a operação é insert. vou inserir em uma outra tabela, o nome da criaturinha e os dados imputados

-----

Quando você clica no GRAVAR, grava apenas daquele que você clicou o botao, e os outros não faz nada?

foi isso que eu pensei, mas não sei se é a melhor forma

Me diz uma coisa.

é possivel fazer a gravação de uma vez só?

pois como o formulario é dinamico, ou seja, depende de qts registros tem no select inicial, eu não sei como ler o conteudo destes campos,

por isso pensei em fazer por partes...

Link para o comentário
Compartilhar em outros sites

  • 0

você pode fazer algo assim: Nomeie os campos de forma dinamica, com o mesmo sufixo, tipo: txt_01, txt_02

For i=1 to Request.Form.Count
If Left(Request.Form.item(i).name,3) = "txt" Then
  strSql = "INSERT INTO tabela(campo) "& _
               "VALUES('" & Request.Form.item(i).value & "')"
 conexao.execute(strSql)
End if
Next

Acho que isso pode resolver seu problema.

Felipe Francesco

Link para o comentário
Compartilhar em outros sites

  • 0

realmente.. se você não sabe a quantidade de campos, fica mais complicado. aí, acho que a ideia do felipe é a melhor!

Tente fazer aí.. qualquer duvida, poste aí

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

então... a quantidade de campos eu sei, isso é fixo. o que ira variar é a quantidade de vezes que o formulario completo ira aparecer...

imaginem o formulario assim assim , com os seguintes campos ...

Nome

Geografia

MAtematica

.

.

.

Ingles

onde o nome é alimentado dinamicamente e as materias são chekbox que serao alimentados pelo usuário.

estas informações serao salvas numa tabela de materias...

então os campos são fixos, o que ira aparecer varias vezes é o formulario completo, mas isso já esta funcionando, o que falta é salvar no banco..

eu evolui um pouquinho no meu problema, consegui fazer o botao chamar uma função (hehehe coisa básica né), agora falta so conseguir passar os dados pra esta função pra eu fazer o insert.

coloquei uma imagem no ar so para vocês verem o que já existe smile.gif

user posted image

Link para o comentário
Compartilhar em outros sites

  • 0

você pode fazer algo assim: Nomeie os campos de forma dinamica, com o mesmo sufixo, tipo: txt_01, txt_02

For i=1 to Request.Form.Count
If Left(Request.Form.item(i).name,3) = "txt" Then
  strSql = "INSERT INTO tabela(campo) "& _
               "VALUES('" & Request.Form.item(i).value & "')"
 conexao.execute(strSql)
End if
Next

Acho que isso pode resolver seu problema.

Felipe Francesco

legal isso, né??? gostei !!!! smile.gif

chegará um dia em que não mais apanharei de coisas tão basicas do asp hehehe

Link para o comentário
Compartilhar em outros sites

  • 0

isso aí funcionou?

resolveu seu problema?

Link para o comentário
Compartilhar em outros sites

  • 0

hehe

então tá..

entendeu como funciona o esquema todo?

de qualquer forma, vou deixar em aberto o tópico.

se precisar de alguma coisa, posta aí

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

oiii gente voltei!!!!

depois de muito apanhar consegui ler o conteudo do formulario, fiz assim

no botao que fica a direita chamei uma função olhem só

<input type="button" name="Submit2" value=".:: Enviar ::." class="botao_form" onClick="return insercao(form.name,'<%=rstSemi("nome_estudante")%>')">      
verifica todos os objetos checkbox que estao marcados... agora vem o problema... a função é java script ... é possivel colocar no meio da função tags de asp e executar um insert?, bom eu tentei mas não consegui ... e agora o que eu posso fazer???
<script language="JavaScript">
function insercao(formulario, nome)
{
      /*vi = formulatio.elements.count*/
       vi = 15
       i = 0
       while(i<vi)
      {
   
            elementotipo=eval("document."+formulario+".elements["+i+"].type")
            if (elementotipo = "checkbox")
           {
	elementonome=eval("document."+formulario+".elements["+i+"].name")
	chk_vr=eval("document."+formulario+".elements["+i+"].checked")
	if (chk_vr == true)
	{     sit = "verdadeiro"
        velemento=eval("document."+formulario+".elements["+i+"].value")
        alert(<%=teste%>)
        alert(elementonome+" - "+velemento+" - " +sit);
	}	
	else
        sit = "false"
            }
             i ++
      }

alert('fim');
return true;
}

a variavel velemento pega o valor do check, cada checkbox verdadeiro sera um insert numa tablea que guardará o nome do aluno a materia e o status que sera ATIVO para todas

florida, viu ....

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