Olá amigos, aqui irei mostrar um dos meus dotis programarescos para o desenvolvmento de um super combox dinâmico “se utilizando-se” de JQuery e PHP… muuito babinha de fazer!!!
Veja aqui o aplicativo funcionando
É muito fácil, tudo o q vc tem a fazer é utilizar algumas implementação do JQuery para tornar o seu trabalho muito mais prático e fácil.
No arquivo index.php, cria-se a chamada para a função JavaScript e tb temos que colocar um arquivo q faz todo o processo de “pedido” de informação.
Implementação semelhante do Blog do Gilberto Albino
<?php
require_once('dados.php'); ?>
<!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>Um combox clássico - Seleção de estado para aparecer, magicamente, as cidades deste estado!!!</title>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
</head>
<body>
<script type="text/javascript">
function EstadoCidade(id_estado) {
// Aqui temos uma função do arquivo do JQuery.
$.ajax(
{
type: "POST",
url: "dados.php",
data: "action=exibeCidade&id_estado=" + id_estado,
success: function(txt) {
// Aqui a gente imprime tudo o q foi feito no dados.php
$('#marcacao').html(txt);
},
}
);
}
</script>
</head>
<body>
Selecione um estado: <br/>
<select name="id_estado" onchange="EstadoCidade(this.value);">
<option value="">Selecione o estado</option>
<?php foreach(colect_estado() as $estado) { ?>
<option value="<?php echo $estado['id_estado']; ?>">
<?php echo $estado['desc_estado']; ?>
</option>
<?php } ?>
</select>
<br /><br />
Cidades do estado <br/>
<div id="marcacao">
<select name="id_cidade">
<option value="">Selecione a Cidade</option>
</select>
</div>
</body>
</html>
No dados.php temos.
<?php
function colect_estado() {
$estados = array(
array('id_estado' => 1, 'desc_estado' => 'São Paulo'),
array('id_estado' => 2, 'desc_estado' => 'Rio de Janeiro'),
array('id_estado' => 3, 'desc_estado' => 'Minas Gerais')
);
return $estados;
}
function colect_cidades($id_estado) {
$table_cidades = array(
array('id_estado' => 1, 'id_cidade' => 1, 'desc_cidade' => 'Cidade São Paulo'),
array('id_estado' => 2, 'id_cidade' => 2, 'desc_cidade' => 'Cidade do Rio de Janeiro'),
array('id_estado' => 3, 'id_cidade' => 3, 'desc_cidade' => 'Cidade de Belo Horizonte'),
);
$cidades = array();
$cont = 0;
for($i=0; $i < count($table_cidades); $i++) {
if($table_cidades[$i]['id_estado'] == $_POST['id_estado']) {
$cidades[$cont]['id_cidade'] = $table_cidades[$i]['id_cidade'];
$cidades[$cont]['desc_cidade'] = $table_cidades[$i]['desc_cidade'];
$cont++;
}
}
return $cidades;
}
switch ($_POST['action']) {
case "exibeCidade":
$txt = '<select name="id_cidade">';
$txt .= '<option value="">Selecione a Cidade</option>';
foreach(colect_cidades($_POST['id_estado']) as $cidades) {
$txt .= '<option value="'.$cidades['id_cidade'].'">' . $cidades['desc_cidade'] . '</option>';
}
$txt .= "</select>";
echo $txt;
break;
}
?>
