Ir para conteúdo

POWERED BY:

Arquivado

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

Daiana

Campos Dinamicos

Recommended Posts

Ola pessoal eu to com uma duvida alguem sabe criar campos dinamicos no asp

 

eu tenho um formulario em que eu preciso que os campos se repitam e eu nao sei como vou fazer pra conseguir fazer um request desses campos ja que eu nao sei a quantidade de campos que seram criados nao faço nem ideia de como vou inserir no bd alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer um contador e jogar o valor de quantos bancos que você terá em um campo HIDDEN e jogar em um laço para fazer esse contador e recuperar os forms

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer um contador e jogar o valor de quantos bancos que você terá em um campo HIDDEN e jogar em um laço para fazer esse contador e recuperar os forms

você pode me explicar de uma forma mais fail sou iniciante em asp e to desesperada pq tenho que resolver esse problema dos campos dinamicos

Compartilhar este post


Link para o post
Compartilhar em outros sites

HTML

<input type='text' name='campo[]' value='1' /><br/>
<input type='text' name='campo[]' value='2' /><br/>
<input type='text' name='campo[]' value='3' /><br/>
<input type='text' name='campo[]' value='4' /><br/>
<input type='text' name='campo[]' value='5' /><br/>

 

ASP

<%

  Campo = Request.Form("Campo")

  Dim times(), I
  I = 0
  For Each Valor In Campo
     Redim Preserve times(I)
     times(I) = Valor
     I = I + 1
  Next

%>

 

Ou...

 

Campo = Request.Form("campo")
Arr = Split(Campo,",")

Compartilhar este post


Link para o post
Compartilhar em outros sites

HTML

<input type='text' name='campo[]' value='1' /><br/>
<input type='text' name='campo[]' value='2' /><br/>
<input type='text' name='campo[]' value='3' /><br/>
<input type='text' name='campo[]' value='4' /><br/>
<input type='text' name='campo[]' value='5' /><br/>

 

ASP

<%

  Campo = Request.Form("Campo")

  Dim times(), I
  I = 0
  For Each Valor In Campo
     Redim Preserve times(I)
     times(I) = Valor
     I = I + 1
  Next

%>

 

Ou...

 

Campo = Request.Form("campo")
Arr = Split(Campo,",")

 

obrigada se nao for pedir de mais você pode me mostrar como eu faria pra fazer um update desses campos no bd?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo:

 

/*
* 
* Como usar:
* 		todo o script se baseia nos parâmetros, logo você só terá que defini-los. Sâo eles:
* 			formID » valor do tipe ID que recebe o formulário
* 			buttonAdd » valor do tipo ID que recebe o botão para adicionar;
* 			textButtonRemove » valor do tipo STRING que especifíca o texto que aparecerá no botão de excluir campo
* 			maxInputs » valor do tipo inteiro que especifíca o máximo de campos a serem criado
* 			minInputs » valor do tipo inteiro que especifíca o mínimo de campos, no documento, depois de criados
* 			textLabel » valor do tipo STRING que especifíca o texto que aparecerá no label
*/

window.onload = function(){
addRemoveInput("upload", "btnAdd", "Deletar Campo!", 10, 2, "URL ");
};

function addRemoveInput(formId, buttonAdd, textButtonRemove, maxInputs, minInputs, textLabel){
var form = document.getElementById(formId);
var btnAdd = document.getElementById(buttonAdd);
var inputs = 0;
var labels = document.getElementsByTagName("label");

btnAdd.onclick = addInput;

function addInput(){
	if(labels.length < maxInputs){
		++inputs;

		var label = document.createElement("label");
		var input = document.createElement("input");
		var btnRemove = document.createElement("input");

		label.innerHTML = textLabel + inputs;
		input.setAttribute("type", "text");
		btnRemove.setAttribute("type", "button");
		btnRemove.setAttribute("value", textButtonRemove);

		label.appendChild(input);

		if(labels.length < minInputs){ 
			form.appendChild(label);
		} else{
			label.appendChild(btnRemove);
			form.appendChild(label);
		}
		btnRemove.onclick = removeInput;

	} else alert("Você pode adicionar até " + maxInputs + " campos!");
}

function removeInput(){
	if(labels.length == minInputs + 1){
		inputs--;
		alert("Você deve deixar no mínimo " + minInputs + " campo(s)!");
		form.removeChild(this.parentNode);
	} else{
		inputs--;
		form.removeChild(this.parentNode);
	}
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
For Each Valor In Campo
     Redim Preserve Times(I)
     Times(I) = Valor
     I = I + 1

     Rst.Open "Update Tabela Set Campo = '" & Times(I) & "'", Con, 3, 3
  Next

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo:

 

/*
* 
* Como usar:
* 		todo o script se baseia nos parâmetros, logo você só terá que defini-los. Sâo eles:
* 			formID » valor do tipe ID que recebe o formulário
* 			buttonAdd » valor do tipo ID que recebe o botão para adicionar;
* 			textButtonRemove » valor do tipo STRING que especifíca o texto que aparecerá no botão de excluir campo
* 			maxInputs » valor do tipo inteiro que especifíca o máximo de campos a serem criado
* 			minInputs » valor do tipo inteiro que especifíca o mínimo de campos, no documento, depois de criados
* 			textLabel » valor do tipo STRING que especifíca o texto que aparecerá no label
*/

window.onload = function(){
addRemoveInput("upload", "btnAdd", "Deletar Campo!", 10, 2, "URL ");
};

function addRemoveInput(formId, buttonAdd, textButtonRemove, maxInputs, minInputs, textLabel){
var form = document.getElementById(formId);
var btnAdd = document.getElementById(buttonAdd);
var inputs = 0;
var labels = document.getElementsByTagName("label");

btnAdd.onclick = addInput;

function addInput(){
	if(labels.length < maxInputs){
		++inputs;

		var label = document.createElement("label");
		var input = document.createElement("input");
		var btnRemove = document.createElement("input");

		label.innerHTML = textLabel + inputs;
		input.setAttribute("type", "text");
		btnRemove.setAttribute("type", "button");
		btnRemove.setAttribute("value", textButtonRemove);

		label.appendChild(input);

		if(labels.length < minInputs){ 
			form.appendChild(label);
		} else{
			label.appendChild(btnRemove);
			form.appendChild(label);
		}
		btnRemove.onclick = removeInput;

	} else alert("Você pode adicionar até " + maxInputs + " campos!");
}

function removeInput(){
	if(labels.length == minInputs + 1){
		inputs--;
		alert("Você deve deixar no mínimo " + minInputs + " campo(s)!");
		form.removeChild(this.parentNode);
	} else{
		inputs--;
		form.removeChild(this.parentNode);
	}
}
}

Sim mais eu gostaria de saber como vou montar um select pra mandar pro bd esses valores alguem me ajuda ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você vai jogar esses valores no Banco não é select, e sim insert.

 

Dúvida, você já fez conexão com o banco de dados? ele já ta configurado certinho aí? Qual é a estrutura da sua tabela? (É importante saber para montar o insert corretamente...)

 

No mais pode usar o exemplo do Go Back!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o que eu postei acima.

e vlw eu vi depois que ja tinha postado o comentario vou estudar as dicas q você me deu e ver se consigo fazer pq sou nova em asp entum msm com todas as dicas bas ainda fk perdida mais vu estudar e ver se consigo fazer

 

Se você vai jogar esses valores no Banco não é select, e sim insert.

 

Dúvida, você já fez conexão com o banco de dados? ele já ta configurado certinho aí? Qual é a estrutura da sua tabela? (É importante saber para montar o insert corretamente...)

 

No mais pode usar o exemplo do Go Back!

pra inserir no bd eu uso outros campos do form tenho la um check box incluir formacao e nele tenho 2 imput e um radio button ai incluio no bd ai o que ue faço depois e fazer um wile enquanto nao acabar essas formações no bd e ele repete a criação dos imputs so que parece que os imputs ficam com o mesmo nome ppor isso nao consigo fazer

 

esse ai e o codigo que eu queria que ficasse dinamico e nao sei como fazer pq pra inserir eu insiro por outtros campos nesse msm form

 

<%
		   sql= "select * from formacao where id_funcionario='"&id_estag&"' and descricao='"&empregado&"'"	
		   set resultado = Cproj.execute(sql)

		   %>

		   <%'cria novos campos no form deacordo com o que ja foi inserido
		   'aki que esta o problema pois parece que todos os campos ficam com o mesmo
		   'nome ai na hora de fazer um update no bd ele atualiza td igual
				while not resultado.eof 
				cont = cont + 1		
			%>
	 <tr>
		<td width="150" class="texto">Formação/Curso :</td>
		<td  style="border:1px solid #b5cbd6; border-right:none"><input name="fomacao<%=cont%>" type="text" class="input_text"  size="40" maxlength="140" value="<%=resultado("formacao")%>" /></td>
	 </tr>						   
	 <tr>
	 <td  style="border:1px solid #b5cbd6; border-left:0px" class="texto">Instituição de Ensino :</td>
	<td ><input name="instituicao<%=cont%>" type="text" class="input_text" size="40" maxlength="145" value="<%=resultado("instituicao")%>" /></td>
	</tr>
			<tr>
	 <td  style="border:1px solid #b5cbd6; border-left:0px" class="texto">Situação</td>
	<td><input name="situacao<%=cont%>" type="text" value="<%=resultado("situacao")%>" />
		<tr><td> </td>
		<td> </td></tr>


		<% resultado.movenext
		wend
		resultado.close
		set resultado = nothing
		%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este code, este script faz o preenchemento de um combo e pega o valor do combo preenchido pra fazer o outro combo, tipo:

 

um combo pais e outro combo estado

 

as tabelas saun:

 

pais- com os campos

cod_pais - chave primária

nome

 

estado -c om os campos

cod_pais - chave estrangeira

cod_estado

nome

 

as tabelas possuem relacionamento de um para muitos

<% Option Explicit 

'declaro as var 
dim var1,var2,var3,....., etc 
'recupero as var 
varpais=request.querystring("pais") 
'crioa a conexao 
%> 

<!--# include file="conexao/conexao.asp"--> 

<% 
'abro a conexao 
Call abre_conexao 
'crio o rs 
set rspais=server.createobject("ADODB.Recordset") 
'crio a SQL 
SQLpais="SELECT * FROM pais ORDER BY nome" 
rspais.open SQLpais,conexao,1,3 
%> 


'aki vou criar o combo, onde no evento onchange ele irá enviar o value do combo pais para a mesma pag, para eu recuperar o codigo do pais e assim preencher o combo estado. 

<form action="inserirend_action.asp" method="post"name="frmteste"> 
<select name="pais" size="1" Onchange="window.navigate('pag_atual.asp?pais='+frmteste.pais.value)"> 

<% while not rspais.eof%> 
<option value="<%=rs("cod_pais")%>"> 
<% if varpais=rs("pais") then 
response.write("Selecionado") 
end if%> 
<%=rs("nome")%> 
</option> 
<% rspais.movenext 
wend%> 
</select> 
<% set rspais=nothing%> 

'aki crio o combo estado 

<select name="estado"size="1"> 
if request("pais") ="" then%> 
<option value=""> selecione um pais 
<%else 
'crio o SQL estado 
SQLestado="Select * from estado where cod_pais="&varpais&" Order by nome" 
'crio o rsestado 
set rsestado=server.createobject("ADODB.Recordset") 
rsestado.open SQLestado,conexao,1,3 
<%while not rsestado.eof%> 
<option value="<%=rsestado("cod_estado")%>"> 
<%=rs("nome")%> 
</option> 
<%rs.movenext 
wend 
end if%> 
</select> 
<% set rsestado=nothing%> 
<% 'fecho a conexao 
call fecha_conexao%>

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.