Ir para conteúdo

POWERED BY:

Arquivado

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

fagnerguima

Associar Combo Box

Recommended Posts

:mellow: Aê galeraeu to com uma dificuladade aki... é o seguinte eu quero associar dois combo box, por exemplo:tenho um combobox com o campo Estado, quero que qdo a pessoa selecione por exemplo, São Paulo, apareça em outro combo somente as cidades do Estado de São Paulo....Só que por enquanto eu tava produzindo esse efeito mointando um html para cada estado... mas cara o trampo é impossível... sei que tem um javascript que faz isso mas ta ruim de achar... valeuno caso precisa ser javascript ou algo assim, pq não tem conexão com bd, é html mesmo.fagner

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, ja faz um bom tempo que copiei uma fez um codigo desses que você quer...

da uma olhda e tente adaptar, o ruim é que é feito tudo manualmente...

Mais vai la o script (se nao me engano era um site de carros)

ASP [/tr][tr]<script>

 

Fabricantes = new Array();

Modelos = new Array();

Versao = new Array();

cbFab = null; tpFab = 0;

cbMod = null; tpMod = 0;

cbVer = null; tpVer = 0;

function comboGenerico(nome, nmCb, nmTp, tp, onChange, onPreenche, teste) {

document.write('<select name="' + nome + '" onChange="' + onChange +'"> <option>12345678901234567890</option>');

for (var i=1; i< 10;i++)

document.write('<option>f</option>');

document.writeln('</select><span style="DISPLAY: none"><SELECT name="' + nome + '$" SIZE=1><OPTION name="' + nome +'$" value="ÿ" target="_new"></SELECT></span>');

var cb = eval(nmCb + '=document.forms[document.forms.length - 1].' + nome);

var val = leCombo(cb, eval(nmTp + '=tp'));

eval(onPreenche);

selecionaCombo(cb, val);

gravaCombo(cb);

return cb;

}

function gravaCombo(cb) {

eval('if (typeof(document.' + cb.form.name + '.' + cb.name +

'$) == "object") document.' + cb.form.name + '.' + cb.name +

'$.value = cb.value');

}

function leCombo(cb, def) {

return eval('(document.' + cb.form.name + '.' + cb.name +

'$.value == "ÿ") ? def : document.' + cb.form.name + '.' + cb.name +

'$.value');

}

function comboFabricante(nm, tp) {

comboGenerico(nm, 'cbFab', 'tpFab', tp, 'gravaCombo(cbFab);preencheModelo()',

'preencheFabricante()');

}

function comboModelo(nm, tp) {

comboGenerico(nm, 'cbMod', 'tpMod', tp, 'gravaCombo(cbMod)',

'preencheModelo()');

}

function comboVersao(nm, tp) {

comboGenerico(nm, 'cbVer', 'tpVer', tp, 'gravaCombo(cbVer)');

}

function VeiItem(cd,nm) {

this.cd = cd; this.nm = nm;

this.sub = new Array();

}

function F(cdFab,nmFab) {

Fabricantes[Fabricantes.length] = new VeiItem(cdFab,nmFab);

}

function M(cdFab,cdMod,nmMod) {

var mod = new VeiItem(cdMod,nmMod);

for (var i=0; i < Fabricantes.length; i++)

if (Fabricantes.cd == cdFab)

Fabricantes.sub[Fabricantes.sub.length] = mod;

Modelos[Modelos.length] = mod;

}

 

function preencheInicio(cb, tp) {

var pos = 0;

for (var i= cb.length - 1; i >= 0; i--)

cb.options = null;

if (tp == -1)

cb.options[pos++] = new Option('Todos', -1);

else

cb.options[pos++] = new Option('', -1);

return pos;

}

function selecionaCombo(cb, vl) {

cb.selectedIndex = 0;

for (var i=0; i< cb.length; i++)

if (cb.options.value == vl)

cb.selectedIndex = i;

}

function preencheFabricante() {

var pos = preencheInicio(cbFab, tpFab);

for (var i=0; i< Fabricantes.length; i++)

cbFab.options[pos++] = new Option(Fabricantes.nm, Fabricantes.cd);

selecionaCombo(cbFab, tpFab);

gravaCombo(cbFab);

preencheModelo();

}

function preencheModelo() {

if (cbMod != null && typeof(cbMod) == 'object') {

var mods, pos = preencheInicio(cbMod, tpMod);

var cdFab = cbFab.options[cbFab.selectedIndex].value;

if (cdFab != -1 && cdFab != 0) {

for (var i=0; i < Fabricantes.length; i++)

if (Fabricantes.cd == cdFab)

mods = Fabricantes.sub;

for (var i=0; i< mods.length; i++)

cbMod.options[pos++] = new Option(mods.nm, mods.cd);

}

selecionaCombo(cbMod, tpMod);

gravaCombo(cbMod);

}

}

/* Opcoes que aparecem no primeiro menu */

F( 001, "São Paulo");

F( 002, "Parana");

 

 

/* Opoes que abrirá depois que for selecionado algum item do primeiro menu */

M( 001, "barretos.htm", "Barretos");

M( 001, "sao_jose.htm", "São José dos Campos");

 

M( 002, "curitiba.htm", "Curitiba");

M( 002, "londrina.htm", "Londrina");

 

</script>

 

 

<FORM name="form2">

Campo 1:<br>

<script>

comboFabricante("fabricante",0);

</script><br><br>

Sub Campo:<br>

 

<script>comboModelo("modelo",0);</script>

 

<script>document.writeln('<FORM NAME="myindex"><INPUT TYPE="BUTTON" VALUE="OK" onClick="goTo(this.form)">')</script>

</form>

 

 

<script language="JavaScript">

<!--

function goTo(form) {

var myindex=form.modelo.selectedIndex

window.open(form.modelo.options[myindex].value);

}

//-->

</script>

[/tr]

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.