Ir para conteúdo

POWERED BY:

Arquivado

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

Marinho

combobox dinâmica com 4 campos

Recommended Posts

Olá a todos !

 

Tenho um combobox Tipo que preenche o subtipo ao ser selecionado. até ai tudo bem, preciso agora repetir o passo do 3 combo para preencher a 4º combo.

 

Com faço para acrescentar mais essa consulta ao script abaixo.

Obrigado

 

 

Página do formularios:

 

<script language="JavaScript">

 

function carrega(valor) {

//verifica se o browser tem suporte a ajax

try {

ajax = new ActiveXObject("Microsoft.XMLHTTP");

}

catch(e) {

try {

ajax = new ActiveXObject("Msxml2.XMLHTTP");

}

catch(ex) {

try {

ajax = new XMLHttpRequest();

}

catch(exc) {

alert("Esse browser não tem recursos para uso do Ajax");

ajax = null;

}

}

}

//se tiver suporte ajax

if(ajax) {

//deixa apenas o elemento 1 no option, os outros são excluídos

document.forms[0].subtipo.options.length = 1;

 

idOpcao = document.getElementById("opcoes");

 

ajax.open("POST", "processa.php", true);

ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

 

ajax.onreadystatechange = function() {

//enquanto estiver processando...emite a msg de carregando

if(ajax.readyState == 1) {

idOpcao.innerHTML = "Carregando...!";

}

//após ser processado - chama função processXML que vai varrer os dados

if(ajax.readyState == 4 ) {

if(ajax.responseXML) {

processXML(ajax.responseXML);

}

else {

//caso não seja um arquivo XML emite a mensagem abaixo

idOpcao.innerHTML = "--Primeiro selecione o estado--";

}

}

}

//passa o código do tipo escolhido

var params = "tipo="+valor;

ajax.send(params);

}

}

 

function processXML(obj){

//pega a tag cidade

var dataArray = obj.getElementsByTagName("subtipo");

 

//total de elementos contidos na tag subtipos

if(dataArray.length > 0) {

//percorre o arquivo XML paara extrair os dados

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

var item = dataArray;

//contéudo dos campos no arquivo XML

var id_sub = item.getElementsByTagName("id_sub")[0].firstChild.nodeValue;

var nome_sub = item.getElementsByTagName("nome_sub")[0].firstChild.nodeValue;

 

idOpcao.innerHTML = "--Selecione uma das opções abaixo--";

 

//cria um novo option dinamicamente

var novo = document.createElement("option");

//atribui um ID a esse elemento

novo.setAttribute("id", "opcoes");

//atribui um valor

novo.value = id_sub;

//atribui um texto

novo.text = nome_sub;

//finalmente adiciona o novo elemento

document.forms[0].subtipo.options.add(novo);

}

}

else {

//caso o XML volte vazio, printa a mensagem abaixo

idOpcao.innerHTML = "--Primeiro selecione o estado--";

}

}

 

</script>

 

<select name="tipo" onChange="carrega(this.value);">

<option value="0">Selecione...</option>

<?php

$resultado = mysql_query("Select * from tipo_imo order by nome_tipo Asc");

while($row = mysql_fetch_array($resultado)) {

echo("<option value=".$row["id_tipo"].">".$row["nome_tipo"]."</option>");

}

?>

</select>

 

<select name="subtipo">

<option id="opcoes" value="0">--Primeiro selecione o estado--</option>

</select>

 

 

Página processa.php:

 

<?

//CONECTA AO MYSQL

require_once("../conexao.php");

 

//RECEBE PARÃMETRO

$tipo = $_POST["tipo"];

 

//QUERY

$sql = "

SELECT *

FROM subtipo

WHERE id_tipo = ".$tipo."

ORDER BY nome_sub";

 

//EXECUTA A QUERY

$sql = mysql_query($sql);

 

$row = mysql_num_rows($sql);

 

//VERIFICA SE VOLTOU ALGO

if($row) {

//XML

$xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";

$xml .= "<subtipos>\n";

 

//PERCORRE ARRAY

for($i=0; $i<$row; $i++) {

$id_sub = mysql_result($sql, $i, "id_sub");

$nome_sub = mysql_result($sql, $i, "nome_sub");

$xml .= "<subtipo>\n";

$xml .= "<id_sub>".$id_sub."</id_sub>\n";

$xml .= "<nome_sub>".$nome_sub."</nome_sub>\n";

$xml .= "</subtipo>\n";

}//FECHA FOR

 

$xml.= "</subtipos>\n";

 

//CABEÇALHO

Header("Content-type: application/xml; charset=iso-8859-1");

}//FECHA IF (row)

 

//PRINTA O RESULTADO

echo $xml;

?>

 

Funciona perfeitamente esse acima.

 

Preciso acrescentar mais uma consulta dinâmica acrescentando mais dois combos: Estados e Cidades, onde selecionado estados terei todas cidades relacionadas.

 

Valeu !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O script acima funciona perfeitamente para o cambo tipo > popula a combo subtipo.

agora logo abaixo do combo subtipo preciso fazer novamente uma combo dinamica mas com: Estado > popula Cidade

copiei o codigo para funfa no estado > cidade e não funciona.

 

Onde que eu posso acrescenter o estado para preencher a combo cidade no script acima ?

Obrigado mais uma vez pessoal !!!

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.