Jump to content
Sign in to follow this  
diogocs

Combobox - Distritos, Concelhos, Freguesias

Recommended Posts

diogocs

Olá,

Estou a desenvolver uma página onde vou necessitar de incluir dentro de um form as seguintes combox:

Distrito, Concelho e Freguesia

Para isso fiz download de uma listagem publicada aqui no fórum.

http://pastebin.com/k17hGwFY

A minha dúvida é, como poderei agora diferenciar Distritos, Concelhos e Freguesias?

Agradeço desde já todo o apoio que me possam dar..

Share this post


Link to post
Share on other sites
HappyHippyHippo

a tabela tem um campo chamado "tipo" que se analisares bem, tem o valor 'null' para distritos, '1' para concelhos e '2' para freguesias


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
diogocs

a tabela tem um campo chamado "tipo" que se analisares bem, tem o valor 'null' para distritos, '1' para concelhos e '2' para freguesias

Obrigado! :)

Só uma ultima questão se não for incomodo..

Gostava que depois de Selecionado por exemplo o Distrito, as proximas combobox mostrassem apenas os valores relacionados com esse distrito..

Share this post


Link to post
Share on other sites
diogocs

Pesquisei pelo google,e vi vários scripts, mas como não domino de todo a linguagem não consegui adaptar para um correto funcionamento.

Será que alguem consegue dar-me algum apoio nesta questão sff?

Obrigado

Share this post


Link to post
Share on other sites
HappyHippyHippo

Pesquisei pelo google,e vi vários scripts, mas como não domino de todo a linguagem não consegui adaptar para um correto funcionamento.

Será que alguem consegue dar-me algum apoio nesta questão sff?

Obrigado

tens de ser mais específico no problema, porque para dar apoio, existe muita gente, mas sem saber qual é o problema em concreto, é impossivel


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
diogocs

tens de ser mais específico no problema, porque para dar apoio, existe muita gente, mas sem saber qual é o problema em concreto, é impossivel

Estou estou a utilizar um script que encontrei na internet.

E ainda só estou a trabalhar o segundo nível, mantive os nomes de variaveis originais para garantir que não vem daí o problema.

Consigo que ele faça a listagem dos Distritos, mas na segunda caixa, após selecionar o distrito já não aparece nada...

index.php

<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
$query ="SELECT * FROM local WHERE tipo=0";
$results = $db_handle->runQuery($query);
?>
<html>
<head>
<TITLE>jQuery Dependent DropDown List - Countries and States</TITLE>
<head>
<style>
body{width:610px;}
.frmDronpDown {border: 1px solid #F0F0F0;background-color:#C8EEFD;margin: 2px 0px;padding:40px;}
.demoInputBox {padding: 10px;border: #F0F0F0 1px solid;border-radius: 4px;background-color: #FFF;width: 50%;}
.row{padding-bottom:15px;}
</style>
<script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
<script>
function getState(val) {
$.ajax({
type: "POST",
url: "get_state.php",
data:'country_id='+val,
success: function(data){
 $("#state-list").html(data);
}
});
}
function selectCountry(val) {
$("#search-box").val(val);
$("#suggesstion-box").hide();
}
</script>
</head>
<body>
<div class="frmDronpDown">
<div class="row">
<label>Distrito:</label><br/>
<select name="country" id="country-list" class="demoInputBox" onchange="getState(this.value);">
<option value="">Selecione o Distrito</option>
<?php
foreach($results as $country) {
?>
 <option value="<?php echo $country["tipo"]; ?>"><?php echo $country["nome"]; ?></option>
<?php
}
?>
</select>
</div>
<div class="row">
<label>Concelho:</label><br/>
<select name="state" id="state-list" class="demoInputBox">
<option value="">Selecione o Concelho</option>
</select>
</div>
</div>
</body>
</html>

dbcontroller.php

<?php
class DBController {
private $host = "localhost";
private $user = "root";
private $password = "";
private $database = "teste";

function __construct() {
 $conn = $this->connectDB();
 if(!empty($conn)) {
  $this->selectDB($conn);
 }
}

function connectDB() {
 $conn = mysql_connect($this->host,$this->user,$this->password);
 return $conn;
}

function selectDB($conn) {
 mysql_select_db($this->database,$conn);
}

function runQuery($query) {
 $result = mysql_query($query);
 while($row=mysql_fetch_assoc($result)) {
  $resultset[] = $row;
 } 
 if(!empty($resultset))
  return $resultset;
}

function numRows($query) {
 $result  = mysql_query($query);
 $rowcount = mysql_num_rows($result);
 return $rowcount;
}
}
?>

getstate.php

<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
if(!empty($_POST["country_id"])) {
$query ="SELECT * FROM local WHERE parent_id = 2";
$results = $db_handle->runQuery($query);
?>
<option value="">Select State</option>
<?php
foreach($results as $state) {
?>
<option value="<?php echo $state["tipo"]; ?>"><?php echo $state["nome"]; ?></option>
<?php
}
}
?>

Share this post


Link to post
Share on other sites
HappyHippyHippo

if(!empty($_POST["country_id"])) {
 $query ="SELECT * FROM local WHERE parent_id = 2"; // <-- que valor mágico é este ? 2 ?

alem disso, dizer ter o ficheiro "getstate.php" no entanto estás a chamar por AJAX o ficheiro "get_state.php"

Edited by HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
diogocs

if(!empty($_POST["country_id"])) {
 $query ="SELECT * FROM local WHERE parent_id = 2"; // <-- que valor mágico é este ? 2 ?

alem disso, dizer ter o ficheiro "getstate.php" no entanto estás a chamar por AJAX o ficheiro "get_state.php"

Ups, isso foi um teste que também não resultou.

O script original tem da seguinte forma:

WHERE countryID = '" . $_POST["country_id"] . "'";

Share this post


Link to post
Share on other sites
HappyHippyHippo

alem disso, dizer ter o ficheiro "getstate.php" no entanto estás a chamar por AJAX o ficheiro "get_state.php"


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
diogocs

Sim, o nome correto é o get_state.php, coloquei mal no POST, mas o ficheiro tem o nome correto :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.