Ir para conteúdo

POWERED BY:

Arquivado

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

gabrielsor

[Resolvido] Combobox Vs. Txtbox - ASP

Recommended Posts

Bom galera, primeira vez postando aqui no forum e logo de cara já venho com uma dúvida que ja me fez perder algumas vááárias horas do meu dia...

É o seguinte: tenho uma página em asp, que contem um formulario, um dos campos desse form é um combobox com o nome de "quantidade", nesse combo existe uma sequencia de números de 01 à 25, até ai tranquilooo...

Lá vem o problema, dependendo da quantidade que for selecionada nesse combobox, queria que fossem criados campos de texto no form, por exemplo, eu escolho a quantidade 03, aparecem 3 campos de texto pra eu escrever o que quiser lá...Já tentei fazer de tudo só que nao da certo...gostaria da ajuda de vocês pra solucionar esse problema...quem tiver alguma solução...

vlwww galera, conto com a ajuda de vocês. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá gabrielsor,

 

Segue abaixo a solução do seu problema:

 

<%
'Declarando as Variaveis e atribuindo valores as mesmas.'

Dim Campos : Campos = CInt(Request.Form("campos"))
Dim Numeros : Numeros = CInt(Numeros)


'se o form não tiver sido submetido ele dá o valor 1 a variavel numeros'
'se o form tiver sido submetido ele busca o número escolhido e poe num laço para repetir o input igual o número de vezes determinado.'

If IsEmpty(Request.Form) Then
	Numeros = 1
Else
	For Numeros = 1 to Campos
		Response.Write("<input type='text' name='" & Numeros & "'/>" & "<br>")
	Next
End If

%>

Qualquer dúvida, pergunte.

[]'s

Pedro Felipe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode fazer isso com jquery, no evento change do select, recupera o valor

 

 

 

$("#iddoselect").change(function() {
var max = $(this).val();
var c = 0;
 for(c=0;c<max;c++){
 $("#idelemento").append('<input name="x" class="y" type="Text" />');
}
});


Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá gabrielsor,

 

Segue abaixo a solução do seu problema:

 

<%
'Declarando as Variaveis e atribuindo valores as mesmas.'

Dim Campos : Campos = CInt(Request.Form("campos"))
Dim Numeros : Numeros = CInt(Numeros)


'se o form não tiver sido submetido ele dá o valor 1 a variavel numeros'
'se o form tiver sido submetido ele busca o número escolhido e poe num laço para repetir o input igual o número de vezes determinado.'

If IsEmpty(Request.Form) Then
	Numeros = 1
Else
	For Numeros = 1 to Campos
		Response.Write("<input type='text' name='" & Numeros & "'/>" & "<br>")
	Next
End If

%>

Qualquer dúvida, pergunte.

[]'s

Pedro Felipe.

 

 

Pedro, vlw pela ajuda, mais ainda não consegui, esse código gera as txtbox na mesma página do form? Pq eu to precisando que ele crie essas Txtbox na msm pagina para depois enviar os dados para uma página de cadastro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, o código postado anteriormente não as gerava na mesma página, segue o código que você pediu.

 


<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="#">
  <label>
  <select name="campos" id="campos">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  </select>
  </label>
  
<!-- código ASP entra aqui. esse código não apresenta uma boa perfomance é apenas para servir de exemplo -->
<p>
<%
'Declarando as Variaveis e atribuindo valores as mesmas.'

Dim Campos : Campos = CInt(Request.Form("campos"))
Dim Numeros : Numeros = CInt(Numeros)


'se o form não tiver sido submetido ele dá o valor 1 a variavel numeros'
'se o form tiver sido submetido ele busca o número escolhido e poe num laço para repetir o input o número de vezes determinado.'

If IsEmpty(Request.Form) Then
	Numeros = 1
Else
	For Numeros = 1 to Campos
		Response.Write("<input type='text' name='" & Numeros & "'/>" & "<br>")
	Next
End If

%>
</p>
<!-- Fim do bloco de código em ASP -->
  <p>
    <label>
    <input type="submit" name="envia" id="envia" value="Enviar" />
    </label>
  </p>
</form>
</body>
</html>

Qualquer dúvida pergunte.

 

[]'s

 

Pedro Felipe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, o código postado anteriormente não as gerava na mesma página, segue o código que você pediu.

 


<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="#">
  <label>
  <select name="campos" id="campos">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  </select>
  </label>
  
<!-- código ASP entra aqui. esse código não apresenta uma boa perfomance é apenas para servir de exemplo -->
<p>
<%
'Declarando as Variaveis e atribuindo valores as mesmas.'

Dim Campos : Campos = CInt(Request.Form("campos"))
Dim Numeros : Numeros = CInt(Numeros)


'se o form não tiver sido submetido ele dá o valor 1 a variavel numeros'
'se o form tiver sido submetido ele busca o número escolhido e poe num laço para repetir o input o número de vezes determinado.'

If IsEmpty(Request.Form) Then
	Numeros = 1
Else
	For Numeros = 1 to Campos
		Response.Write("<input type='text' name='" & Numeros & "'/>" & "<br>")
	Next
End If

%>
</p>
<!-- Fim do bloco de código em ASP -->
  <p>
    <label>
    <input type="submit" name="envia" id="envia" value="Enviar" />
    </label>
  </p>
</form>
</body>
</html>

Qualquer dúvida pergunte.

 

[]'s

 

Pedro Felipe.

 

 

Deu certo, os campos apareceram... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

só mais uma pergunta, existe algum jeito desses campos aparecerem sem a necessidade de apertar um botão, pq acho que vou ter um problema com dois botões no msm form, um para enviar os dados e outro para gerar os campos...

 

tentei fazer com o javascript, mas nao deu...

 

se puder me ajudar mais uma vez... :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada neste 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

xanburzum, sou muitooo iniciante nesse lance de programação e não entendi ndaa do código que você postou, o código do Pedro Felipe, me ajudou em partes, consegui criar os campos, porém fiquei com 2 botões no meu form, um de enviar e o outro de criar os campos, cheguei a criar um codigo em javascript criando um evento OnChange no combobox, mais não deu certo..

Aqui vai o código...

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="#">
  <label>
  <select name="campos" id="campos" onchange="inseretxt()">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  </select>
  </label>
  
<!-- código ASP entra aqui. esse código não apresenta uma boa perfomance é apenas para servir de exemplo -->
<p>
<script>

function inseretxt(){
var Campos = document.form1.campos.selectedIndex

<%


Dim Numeros : Numeros = CInt(Numeros)

If IsEmpty(Request.Form) Then
        Numeros = 1
Else
        For Numeros = 1 to Campos
                Response.Write("<input type='text' name='" & Numeros & "'/>" & "<br>")
        Next
End If

%>
}
</script>


</p>
<!-- Fim do bloco de código em ASP -->
  <p>
    <label>
    <input type="submit" name="envia" id="envia" value="Cadastrar" />
    </label>
  </p>
</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o código que coloquei criar campos automaticamente para gerar campos

 

e outro para gerar os campos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido!!! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Utilizei o códico do Pedro Felipe e fiz uma alteração criando mais um botão para o envio do formulário.

 

 

Aqui está o código:

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem Título</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="#">
  <label>
  <select name="campos" id="campos">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  </select>
  </label>
  

<input type="submit" name="envia" id="envia" value="OK" />
<p>

<%
Dim Campos : Campos = CInt(Request.Form("campos"))
Dim Numeros : Numeros = CInt(Numeros)

If IsEmpty(Request.Form) Then
        Numeros = 1
Else
        For Numeros = 1 to Campos
                Response.Write("<input type='text' name='" & Numeros & "'/>" & "<br>")
        Next
End If

%>

<p>
  <label>
  <input type="submit" name="Submit" value="Enviar" onclick="enviar()"/>
  </label>
</form>

<script>
function enviar(){
	document.getElementById("form1").action="index.asp";
	document.getElementById("form1").submit();
}
</script>
</body>
</html>

 

Vlww galera, até uma próxima!!! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK, amigo...

 

precisando estamos ae...

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.