Ir para conteúdo

POWERED BY:

Arquivado

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

crisaum

Criando formulários dinamicamente com quantidade dinâmica

Recommended Posts

Pessoal, estou montando uma inscrição de empresas e funcionários para cursos, eventos etc e estou com um probleminha, no formulário com a info da empresa eu tenho um input do tipo text que passa a quantidade de pessoas que serão inscritas no evento escolhido, porém, quando a pessoa clicar em avançar, os dados da empresa são postados e abrem os forms dos participantes, a cada participante inscrito, o formulário seguinte deverá ser ativado até a quantidade final de participantes.

 

Por exemplo, se tenho 3 pessoas, assim que postados os dados da empresa, aparece o primeiro form com os dados da pessoa (pra preencher), clicando em avançar, posta os dados desse primeiro e habilita um segundo form, faz o mesmo processo e habilita o terceiro, no terceiro, a action dele muda pra uma tela q confirma todos os dados digitados juntos.

 

Alguma sugestão pra isso?!?

 

Segue o código que montei inicialmente ... (lembrando que não sou nenhum expert em ASP, estou aprendendo ainda =/)

 

<!--#include file="inc/header.asp"-->
<%
   tipo = request.querystring("tipo")
   
   if tipo = "curso" then
		id = request.querystring("id")
		   
		sqlCursos = "SELECT * FROM LI_Cursos WHERE CursoID ="& id
		set rs_cursos = conexao.execute(sqlCursos)
		
		titulo = "Curso: "& rs_cursos("CursoTitulo")
		datainicial = day(rs_cursos("CursoDataInicial"))&"/"&month(rs_cursos("CursoDataInicial"))&"/"&year(rs_cursos("CursoDataInicial"))
		datafinal = day(rs_cursos("CursoDataFinal"))&"/"&month(rs_cursos("CursoDataFinal"))&"/"&year(rs_cursos("CursoDataFinal"))
		local = rs_cursos("CursoLocal")
		duracao = rs_cursos("CursoDuracao")
		valor = rs_cursos("CursoValor")
		situacao = rs_cursos("CursoSituacao")
   end if
   
   if tipo = "evento" then
		id = request.querystring("id")
		   
		sqlEventos = "SELECT * FROM LI_Eventos WHERE EventoID ="& id
		set rs_eventos = conexao.execute(sqlEventos)
		
		titulo = "Evento: "& rs_eventos("EventoTitulo")
		datainicial = day(rs_eventos("EventoDataInicial"))&"/"&month(rs_eventos("EventoDataInicial"))&"/"&year(rs_eventos("EventoDataInicial"))
		datafinal = day(rs_eventos("EventoDataFinal"))&"/"&month(rs_eventos("EventoDataFinal"))&"/"&year(rs_eventos("EventoDataFinal"))
		local = rs_eventos("EventoLocal")
		duracao = rs_eventos("EventoDuracao")
		valor = rs_eventos("EventoValor")
		situacao = rs_eventos("EventoSituacao")
   end if
   
   if tipo = "forum" then
		id = request.querystring("id")
		   
		sqlForuns = "SELECT * FROM LI_Foruns WHERE ForumID ="& id
		set rs_foruns = conexao.execute(sqlForuns)
		
		titulo = "Fórum: "& rs_foruns("ForumTitulo")
		datainicial = day(rs_foruns("ForumDataInicial"))&"/"&month(rs_foruns("ForumDataInicial"))&"/"&year(rs_foruns("ForumDataInicial"))
		datafinal = day(rs_foruns("ForumDataFinal"))&"/"&month(rs_foruns("ForumDataFinal"))&"/"&year(rs_foruns("ForumDataFinal"))
		local = rs_foruns("ForumLocal")
		duracao = rs_foruns("ForumDuracao")
		valor = rs_foruns("ForumValor")
		situacao = rs_foruns("ForumSituacao")
   end if
   
   empresa = request.form("empresa")
   setor_participante = request.form("setor_participante2")
   nome_do_contrato = request.form("nome_do_contrato")
   telefone_contrato = request.form("ddd_contrato") & request.form("telefone_contrato")
   ramal_contrato = request.form("ramal_contrato")
   departamento_contrato = request.form("departamento_contrato")
   endereco_contrato = request.form("endereco_contrato")
   cidade_contrato = request.form("cidade_contrato")
   estado_contrato = request.form("estado_contrato")
   cep_contrato = request.form("cep_contrato")
   unidade = request.form("unidade")
   razao_social = request.form("razao_social")
   cnpj = request.form("cnpj")
   ie = request.form("ie")
   endereco_faturamento = request.form("endereco_faturamento")
   cidade_faturamento = request.form("cidade_faturamento")
   estado_faturamento = request.form("estado_faturamento")
   cep_faturamento = request.form("cep_faturamento")
   participantes = request.form("participantes")
   
%>
		  <table width="100%" border="0" cellspacing="0" cellpadding="5">
			<tr>
			  <td class="noPadding"><img src="img/gif/tit_agenda_2007.gif" alt="Agenda 2007" width="134" height="31" /></td>
			</tr>
			<tr>
			  <td valign="top"><form id="form_cadastro" name="form_cadastro" method="post" action="cadastro_step_3.asp">
				  <h2><%=titulo%></h2>
				  <p><img src="img/gif/bullet.gif" alt="." width="13" height="13" hspace="5" align="left" /><strong>Dados da Empresa:</strong></p>
				  <table border="0" cellpadding="5" cellspacing="0">
					<tr>
					  <td width="100">Empresa:</td>
					  <td><%=empresa%></td>
					</tr>
					<tr>
					  <td width="100">Setor:</td>
					  <td><%=setor_participante%></td>
					</tr>
				  </table>
				  <p><strong><img src="img/gif/bullet.gif" alt="." width="13" height="13" hspace="5" align="left" />A Nota Fiscal deverá ser enviada para:</strong></p>
				  <table border="0" cellpadding="5" cellspacing="0">
					<tr>
					  <td width="100">Nome do Contrato:</td>
					  <td><%=nome_do_contrato%></td>
					</tr>
					<tr>
					  <td>Telefone:</td>
					  <td><%=telefone_contrato%></td>
					</tr>
					<tr>
					  <td>Ramal:</td>
					  <td><%=ramal_contrato%></td>
					</tr>
					<tr>
					  <td>Departamento:</td>
					  <td><%=departamento_contrato%></td>
					</tr>
					<tr>
					  <td>Endereço:</td>
					  <td><%=endereco_contrato%></td>
					</tr>
					<tr>
					  <td>Cidade:</td>
					  <td><%=cidade_contrato%></td>
					</tr>
					<tr>
					  <td>Estado:</td>
					  <td><%=estado_contrato%></td>
					</tr>
					<tr>
					  <td>CEP:</td>
					  <td><%=cep_contrato%></td>
					</tr>
				  </table>
				  <p><strong><img src="img/gif/bullet.gif" alt="." width="13" height="13" hspace="5" align="left" />Dados para Faturamento:</strong></p>
				  <table border="0" cellpadding="5" cellspacing="0">
					<tr>
					  <td width="100">Unidade:</td>
					  <td><%=unidade%></td>
					</tr>
					<tr>
					  <td width="100">Razão Social:</td>
					  <td><%=razao_social%></td>
					</tr>
					<tr>
					  <td width="100">CNPJ:</td>
					  <td><%=cnpj%></td>
					</tr>
					<tr>
					  <td width="100">IE:</td>
					  <td><%=ie%></td>
					</tr>
					<tr>
					  <td>Endereço:</td>
					  <td><%=endereco_faturamento%></td>
					</tr>
					<tr>
					  <td>Cidade:</td>
					  <td><%=cidade_faturamento%></td>
					</tr>
					<tr>
					  <td>Estado:</td>
					  <td><%=estado_faturamento%></td>
					</tr>
					<tr>
					  <td>CEP:</td>
					  <td><%=cep_faturamento%></td>
					</tr>
					<tr>
					  <td>Número de Participantes:</td>
					  <td valign="top"><%=participantes%></td>
					</tr>
					<tr>
					  <td colspan="2" align="right">
					  <% 
					  i = 1
					  for i = i to participantes
						  if request.querystring("participante") < participantes then
							  action = "cadastro_step_2_participantes.asp?participante="&i
						else
							action = "cadastro_step_2_participantes_confirmacao.asp"
						end if
					  %>
					  <hr />
					  <form name="form_participante" id="form_participante" action="<%=action%>" method="post" />
					  <table border="0" cellpadding="5" cellspacing="0">
					  <tr>
						<td width="100">Nome:</td>
						<td><input name="nome" type="text" class="inputCadastro" id="nome" tabindex="1" /></td>
					  </tr>
					  <tr>
						<td width="100">Sobrenome:</td>
						<td><input name="sobrenome" type="text" class="inputCadastro" id="sobrenome" tabindex="2" /></td>
					  </tr>
					  <tr>
						<td width="100">Nome no Crachá:</td>
						<td><input name="nome_cracha" type="text" class="inputCadastro" id="nome_cracha" tabindex="3" /></td>
					  </tr>
					  <tr>
						<td width="100">Sexo:</td>
						<td><input name="sexo" type="radio" id="sexo" value="masculino" checked="checked" />
						  Masculino
						  <input type="radio" name="sexo" id="sexo2" value="feminino" />
						  Feminino</td>
					  </tr>
					  <tr>
						<td>RG:</td>
						<td><input name="rg" type="text" class="inputCadastro" id="rg" maxlength="12" tabindex="4" /></td>
					  </tr>
					  <tr>
						<td>Cargo:</td>
						<td><input name="cargo" type="text" class="inputCadastro" id="cargo" tabindex="6" /></td>
					  </tr>
					  <tr>
						<td>E-mail:</td>
						<td><input name="email" type="text" class="inputCadastro" id="email" tabindex="9" /></td>
					  </tr>
					  <tr>
						<td colspan="3"><input name="avancar" type="image" class="alignRight" id="avancar" src="img/gif/btn_avancar.gif" alt="Avançar" /></td>
					  </tr>
					</table>
					</form>
					  <% next %>
					  </td>
					</tr>
					<tr>
					  <td colspan="2"><input name="avancar2" type="image" class="alignRight" id="avancar2" src="img/gif/btn_avancar.gif" alt="Avançar" /></td>
					</tr>
				  </table>
				</form></td>
			</tr>
		  </table>
<!--#include file="inc/footer.asp"-->

se alguém puder dar um help, agradeço!!

 

valeu

 

esqueci, estou usando asp com sql 2000

Compartilhar este post


Link para o post
Compartilhar em outros sites

xi cara, meio doido isso ai, mas já tentou guardar em uma sessão o valor e só avançar pro proximo se a sessão for 1 a mais que o valor da quantidade do post? Assim a cada post você incrementa a sessão pra ela receber o valor atual da quantiodade cadastrada

Compartilhar este post


Link para o post
Compartilhar em outros sites

xi cara, meio doido isso ai, mas já tentou guardar em uma sessão o valor e só avançar pro proximo se a sessão for 1 a mais que o valor da quantidade do post? Assim a cada post você incrementa a sessão pra ela receber o valor atual da quantiodade cadastrada

eu sei que parece meio lunático, mais eu já vi isso funcionando em algum site, num me lembro qual foi (ajuda muito né?=/) ... na primeira tentativa, passei por session os dados preenchidos, mais o problema é que meu cliente quer que fique todos os formulários numa mesma tela, o primeiro ativo e o restante inativo, conforme vai preenchendo vai postando os dados e ativa o seguinte ...

 

nem sei mais o que fazer ... tô ficando com cabelo branco já!! uhauahuahau

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara pode parecer meio louco... mas pode te ajudar...

a idéia seria você usar um banco de dados simples de manobra, daí para cada passo você iria incluindo as informações...

 

no momento que ele recupera as informações deste banco de manobra e confirma sua inscrição, os dados são incluidos no banco "MASTER" e o banco de manobra é zerado...

 

sei que não é uma solução de alto nível como a do jonathandj... mas pode te ajudar...

 

tem que levar em consideração que o processo pode ficar um pouco lento por conta deste "gatilho"

 

 

abrç

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu galera, mais convenci meu cliente a não fazer essa doidera, consegui fazer ele preencher um form de cada vez ...

 

mesmo assim, obrigado a quem tentou imaginar essa gambi rodando =)

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.