Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Este script está parcialmente pronto, ele faz o seguinte:
Quando seleciona Pais lista na combo os estados do pais.
Quando seleciona Estado lista na combo as cidades do pais.
O que falta é:
Quando selecionar cidade mostrar no campo Nome e Fone os dados.
Cada cidade tem um cliente
Agradecido a quem terminar.
---------------------------------------------------------------
Base de Dados:
CREATE TABLE `pais` (
`cod_pais` int(11) NOT NULL auto_increment,
`nome` varchar(255) NOT NULL,
PRIMARY KEY (`cod_pais`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
INSERT INTO `pais` VALUES (1,'BRASIL');
INSERT INTO `pais` VALUES (2,'ARGENTINA');
INSERT INTO `pais` VALUES (3,'PARAGUAY');
CREATE TABLE `estado` (
`cod_estado` int(10) unsigned NOT NULL auto_increment,
`nome` varchar(255) default NULL,
`abreviacao` varchar(255) NOT NULL default '',
`cod_pais` int(11) NOT NULL default '1',
PRIMARY KEY (`cod_estado`),
KEY `cod_estado` (`cod_estado`)
) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=latin1;
INSERT INTO `estado` VALUES (1,'AC','',1);
INSERT INTO `estado` VALUES (2,'AL','',1);
INSERT INTO `estado` VALUES (3,'AM','',1);
INSERT INTO `estado` VALUES (4,'AP','',1);
INSERT INTO `estado` VALUES (5,'BA','',1);
INSERT INTO `estado` VALUES (6,'CE','',1);
INSERT INTO `estado` VALUES (7,'DF','',1);
INSERT INTO `estado` VALUES (8,'ES','',1);
INSERT INTO `estado` VALUES (9,'GO','',1);
INSERT INTO `estado` VALUES (10,'MA','',1);
INSERT INTO `estado` VALUES (11,'MG','',1);
INSERT INTO `estado` VALUES (12,'MS','',1);
INSERT INTO `estado` VALUES (13,'MT','',1);
INSERT INTO `estado` VALUES (14,'PA','',1);
INSERT INTO `estado` VALUES (15,'PB','',1);
INSERT INTO `estado` VALUES (16,'PE','',1);
INSERT INTO `estado` VALUES (17,'PI','',1);
INSERT INTO `estado` VALUES (18,'PR','',1);
INSERT INTO `estado` VALUES (19,'RJ','',1);
INSERT INTO `estado` VALUES (20,'RN','',1);
INSERT INTO `estado` VALUES (21,'RO','',1);
INSERT INTO `estado` VALUES (22,'RR','',1);
INSERT INTO `estado` VALUES (23,'RS','',1);
INSERT INTO `estado` VALUES (24,'SC','',1);
INSERT INTO `estado` VALUES (25,'SE','',1);
INSERT INTO `estado` VALUES (26,'SP','',1);
INSERT INTO `estado` VALUES (27,'TO','',1);
INSERT INTO `estado` VALUES (29,'PORTO IGUAÇU','',2);
INSERT INTO `estado` VALUES (30,'ALTO PARANÁ','',3);
CREATE TABLE `cidade` (
`cod_cidade` int(10) unsigned NOT NULL auto_increment,
`cod_estado` int(10) unsigned NOT NULL default '0',
`nome` varchar(255) default NULL,
`capital` int(10) unsigned default NULL,
PRIMARY KEY (`cod_cidade`),
KEY `cod_estado` (`cod_estado`)
) ENGINE=MyISAM AUTO_INCREMENT=6371 DEFAULT CHARSET=latin1 ROW_FORMAT=FIXED;
INSERT INTO `cidade` VALUES (2174,9,'GOIANIA',1);
INSERT INTO `cidade` VALUES (2175,9,'CATALÃO',0);
INSERT INTO `cidade` VALUES (2176,9,'HIDROLANDIA',0);
INSERT INTO `cidade` VALUES (5730,18,'CURITIBA',1);
INSERT INTO `cidade` VALUES (6093,18,'FOZ DO IGUACU',0);
INSERT INTO `cidade` VALUES (6094,18,'FOZ DO JORDAO',0);
INSERT INTO `cidade` VALUES (6270,18,'LONDRINA',0);
INSERT INTO `cidade` VALUES (6310,18,'MARINGA',0);
INSERT INTO `cidade` VALUES (6370,18,'NOVA LONDRINA',0);
CREATE TABLE `cliente` (
`cod_cliente` int(1) NOT NULL auto_increment,
`nome` varchar(30) default '',
`fone` bigint(11) default NULL,
`cod_cidade` int(11) default NULL,
PRIMARY KEY (`cod_cliente`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
INSERT INTO `cliente` VALUES (1,'JOSE SANTANA NUNES',6235879455,2174);
INSERT INTO `cliente` VALUES (2,'CARLOS MENEZES SANTANA',6236254878,2175);
INSERT INTO `cliente` VALUES (3,'PEDRO FERREIRA DE SOUZA',6235687897,2176);
INSERT INTO `cliente` VALUES (4,'MARIA DAS NEVES SANTANA',6254878544,5730);
INSERT INTO `cliente` VALUES (5,'ROBERTO ALVES FERREIRA',1165878544,6093);
INSERT INTO `cliente` VALUES (6,'AMAURI DOS ANJOS',2158784578,6094);
INSERT INTO `cliente` VALUES (7,'ROSA MARIA ALBUQUERQUE',1765871125,6270);
INSERT INTO `cliente` VALUES (8,'LEILA FREITAS ',1158792255,6310);
INSERT INTO `cliente` VALUES (9,'RICARDO JOSE MAGALHAES',2125457833,6370);
-------------------------------------------------------------------------------------
index.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>
<title>Carregando combobox com JQuery + PHP + MySql</title>
<!-- inclusão da biblioteca jquery -->
<script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
<script>
<!-- codigos jquery executados quando a pagina esta pronta para executar
$(document).ready(function() {
//usa a função get para carregar o combobox do pais
//somente serão passados parâmetros quando precisar fazer uma vinculação entre as tabelas
$.get('pais.php',
function(resp){
//a resposta da execução da pagina em php carrega o comobox de pais
$("select[name=cod_pais]").html(resp);
}
);
//Caso for selecionado o combobox de pais essa função será executada p/ carregar Estado
$("select[name=cod_pais]").change(function(){
//coloca a mensagem de carregando no combo
$("select[name=cod_estado]").html('<option>Carregando :::::::</option>');
// Passa os parametros por GET
// $.get('nome do arquivo', { variavel: valor, variavel2: valor2 }, funcao de resposta);
$.get('estado.php',
{ cod_pais : $(this).val() },
function(resp){
//a resposta da execução da pagina em php carrega o comobox do estado
$("select[name=cod_estado]").html(resp);
}
);
//ao selecionar o estado o combobox de cidade é zerado
$("select[name=cod_cidade]").html('');
});
//Caso for selecionado o combobox de estado essa função será executada p/ carregar cidade
$("select[name=cod_estado]").change(function(){
//coloca a mensagem de carregando no combo
$("select[name=cod_cidade]").html('<option>Carregando :::::::</option>');
// Passa os parametros por GET
// $.get('nome do arquivo', { variavel: valor, variavel2: valor2 }, funcao de resposta);
$.get('cidade.php',
{ cod_estado : $(this).val() },
function(resp){
//a resposta da execução da pagina em php carrega o comobox cidade
$("select[name=cod_cidade]").html(resp);
}
);
});
});
</script>
</head>
<body>
<form>
<fieldset>
<label for="cod_pais">
Pais: <select id="cod_pais" name="cod_pais"></select>
</label>
<label for="cod_estado">
Estado: <select id="cod_estado" name="cod_estado"></select>
</label>
<label for="cod_cidade">
Cidade: <select id="cod_cidade" name="cod_cidade"></select>
</label>
<label for="cliente">
Nome: <input type = "text" name="cliente" value="<?php echo $cliente;?>"/>
</label>
<label for="fone">
Fone: <input type = "text" name="fone" value="<?php echo $fone;?>"/>
</label>
</fieldset>
</form>
</body>
</html>
-------------------------------------------------------------------------------------------------------
pais.php
<?php
//Incluem as variaveis de conexão
include("conexao.php");
//Conecta ao mysql
$connection=mysql_connect($db_host,$db_user,$db_password) or die ("Nao foi possivel fazer a conexao");
//Seleciona o Banco de Dados
mysql_select_db("$db_base") or die(mysql_error());
//Procura a admin para verificar se esta cadastrada ou não
$sql = "SELECT cod_pais, nome FROM pais order by nome ";
//Executa a query
$resultado = mysql_query($sql, $connection) or die ("Nao foi possivel executar o select");
//Verifica ate aonde encontra os dados
while ($valor = mysql_fetch_array($resultado)) {
echo "<option value=\"$valor[0]\">".utf8_encode($valor[1])."</option>";
}
?>
--------------------------------------------------------------------------------------------------------
estado.php
<?php
//Incluem as variaveis de conexão
include("conexao.php");
//Conecta ao mysql
$connection=mysql_connect($db_host,$db_user,$db_password) or die ("Nao foi possivel fazer a conexao");
//Seleciona o Banco de Dados
mysql_select_db("$db_base") or die(mysql_error());
//Faz um casting com os códigos passados para evitar Sql Injection
$_GET[cod_pais] = (int)$_GET[cod_pais];
$_GET[cod_estado] = (int)$_GET[cod_estado];
//Faz o select
$sql = "SELECT * FROM estado WHERE cod_pais = '$_GET[cod_pais]'";
//Executa a query
$resultado = mysql_query($sql, $connection) or die ("Nao foi possivel fazer o select");
//Verifica ate aonde encontra os dados
while ($valor = mysql_fetch_array($resultado)) {
if ($_GET['cod_estado'] == $valor['cod_estado']) {
echo "<option value=\"$valor[0]\" selected=\"selected\">".utf8_encode($valor[1])."</option>"; echo "<option value=\"$valor[0]\">".utf8_encode($valor[1])."</option>";
}
}
?>
-------------------------------------------------------------------------------------------------------------
cidade.php
<?php
//Incluem as variaveis de conexão
include("conexao.php");
//Conecta ao mysql
$connection=mysql_connect($db_host,$db_user,$db_password) or die ("Nao foi possivel fazer a conexao");
//Seleciona o Banco de Dados
mysql_select_db("$db_base") or die(mysql_error());
//Faz um casting com os códigos passados para evitar Sql Injection
$_GET[cod_estado] = (int)$_GET[cod_estado];
$_GET[cod_cidade] = (int)$_GET[cod_cidade];
//Faz o select
$sql = "SELECT * FROM cidade WHERE cod_estado = '$_GET[cod_estado]'";
//Executa a query
$resultado = mysql_query($sql, $connection) or die ("Nao foi possivel buscar as admins da base: $sql");
//Verifica ate aonde encontra os dados
while ($valor = mysql_fetch_array($resultado)) {
if ($_GET['cod_cidade'] == $valor['cod_cidade']) {
//($valor[2] porque é a ordem no banco de dados.
echo "<option value=\"$valor[0]\" selected=\"selected\">".utf8_encode($valor[2])."</option>"; echo "<option value=\"$valor[0]\">".utf8_encode($valor[2])."</option>";
}
}
?>
-------------------------------------------------------------------------------------------------------------
conexao.php
<?php
//Variaveis de Conexao
//no servidor de teste
$db_host = "localhost";
$db_user = "root";
$db_password = "admin";
$db_base = "systema";
?>
------------------------------------------------------------------------------------------------------------
Carregando comentários...