Ir para conteúdo

POWERED BY:

Arquivado

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

okrek

probleminha com select e caixa de texto

Recommended Posts

galera é o seguinte, fiz um script que ta funcionando,

 

conforme eu escolho a cidade ele acrescenta options no select, e caso eu escolha a opcao OUTRA, ele abre uma caixa de texto para livre digitacao, a ideia é que caso nao tenha a cidade a pessoa possa digitar.

 

mas tem um probleminha, o nome do select é CIDADE, pois é onde ele irá inserir no BD.

O problema esta justamente ai, a caixa de texto que dei o nome de C , tbm tem que chamar CIDADE, para inserir a informacao no BD, e como sabem se os dois tiverem o mesmo nome da erro.

tentei separar os 2 por form, tabela, deu tudo erro. quem puder me ajudar fico muito agradecido. Obrigado.

 

<script>
var cidades = new Array();
cidades['SP'] = new Array('Sao Paulo','Bauru','Americana','outra');
cidades['RJ'] = new Array('Rio janeiro','Parati','Trindade');
function carregaCidade(estado)
{
	document.all.cidade.options.length = 0;
	for(var i in cidades[estado])
	{
		var opt = new Option(cidades[estado][i],cidades[estado][i]);
		document.all.cidade.options.add(opt);
	}
}
</script>
<script language="JavaScript">
<!--
function mostra(form)
{
	if (form.value=="outra")
	{
 document.forms[0].c.style.display='';
	}else{
 document.forms[0].c.style.display='none';
	}
}
-->
</script>

<form method="post" action="">

<body onLoad="carregaCidade(document.all.estado.value),mostra(this)">
<select name="estado" onChange="carregaCidade(this.value),mostra(this)">
<option>Estado</option>
<option value="SP">SP</option>
<option value="RJ">RJ</option>
</select>
<select name="cidade" onChange="mostra(this)"size="1">

</select>
</body>



</body><input type="text" size="19" name="c">
</form></body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma ideia seria verificar, no arquivo que insere no banco, se o campo C está preenchido (nao sei qual linguagem você usa mas procure por funcao que conta os caracteres, se for maior 1 é pq está preenchido) entao o dado virá deste campo, se nao, vem do combo.

 

se C está preenchido entao
campo = request.form("c")
se nao
campo = request.form("cidade")
final do if

depois no select você soh informa campo... bom, isto é uma ideia

Compartilhar este post


Link para o post
Compartilhar em outros sites

adreia obrigado por responder, acho que da certo sim do modo que você disse

 

pensei meio que em uma solucao lusitana que quase da certo,

a ideia seria é colocar um botao ADICIONA, sendo assim digitaria a cidade, e com o botao adiciona ele manda para o select, fiz isso e deu certo, o problema é que nao está indo o valor digitado, e sim números, ou seja o select está recebendo 1 , 2 , 3 no value

Compartilhar este post


Link para o post
Compartilhar em outros sites

<html>

 

<head>

<meta name="GENERATOR" content="Microsoft FrontPage 6.0">

<meta name="ProgId" content="FrontPage.Editor.Document">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<title>Nova pagina 1</title>

</head>

 

<body>

<script>

var cidades = new Array();

cidades['Volkswagem'] = new Array('Gol','Parati','Santana','outro');

cidades['Fiat'] = new Array('Palio','Uno','Siena','outro');

cidades['Ford'] = new Array('Fiesta','KA','Belina','outro');

cidades['Chevrolet'] = new Array('Astra','Monza','D-20','outro');

function carregaCidade(m)

{

document.all.model.options.length = 0;

for(var i in cidades[m])

{

var opt = new Option(cidades[m],cidades[m]);

document.all.model.options.add(opt);

}

}

</script>

<script language="JavaScript">

<!--

function mostra(form)

{

if (form.value=="outro")

{

document.forms[0].a.style.display='';

document.forms[0].c.style.display='';

}else{

document.forms[0].a.style.display='none';

document.forms[0].c.style.display='none';

}

}

-->

</script>

 

 

 

 

 

<script type="text/javascript">

function insertBeforeSelected()

{

var x=document.getElementById("model"); //retorna o objeto select

var options = x.getElementsByTagName("option"); //pega a lista de options do select

 

if (x.selectedIndex>=0)

{

var y=document.createElement('option'); //cria um novo elemento option

y.text=document.getElementById("c").value; //seta o texto do elemento option

y.value=options.length; //seta o valor do elemento option

var sel=x.options[x.selectedIndex]; //pega o indice selecionado do objeto select

try

{

x.add(y,sel); // adiciona um novo option antes do indice selecionado para navegadores complacentes

}

catch(ex)

{

x.add(y,x.selectedIndex); // adiciona um novo option antes do indice selecionado para o IE

}

}

}

 

function removeOption()

{

var x=document.getElementById("model")

x.remove(x.selectedIndex)

}

</script>

 

<form method="post" action="">

 

<body onLoad="carregaCidade(document.all.m.value),mostra(this)">

<select name="m" onChange="carregaCidade(this.value),mostra(this)" size="1">

<option>Marca</option>

<option value="Volkswagem">Volkswagem</option>

<option value="Fiat">Fiat</option>

<option value="Ford">Ford</option>

<option value="Chevrolet">Chevrolet</option>

</select>

</select>

<select name="model" onChange="mostra(this)"size="1">

<option value="{MODEL}" </option>

 

</select>

</body>

 

 

 

</body><input type="text" size="19" name="c">

<input type="button" onclick="insertBeforeSelected()" value="Adicionar" name="a" style="font-size: 8pt" /></form></body>

 

</html>

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.