ho trovato questo che sarebbe perfetto se non fosse per il fatto che usa mysqli e non so come modificarlo dato che lo devo usare su postgresql.
Codice PHP:
<?php
include_once('config/config.php');
include_once('class/data.class.php');
$mysqli = new data(HOST, USERNAME, PASSWORD, DATABASE);
$regioni = $mysqli->getRegioni();
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript" src="js/italia.js"></script>
</head>
<body>
<form>
<p><label for="regione">Regione</label>
<select name="regione" id="regione" class="dinamiche">
<option value="">Seleziona...</option>
<?php foreach($regioni as $val): ?>
<option value="<?php echo $val['cod_regione']; ?>"><?php echo $val['regione']; ?></option>
<?php endforeach; ?>
</select></p>
<p><label for="provincia">Provincia</label>
<select name="provincia" id="provincia" class="dinamiche">
<option value="">Seleziona...</option>
</select></p>
<p><label for="comune">Comune</label>
<select name="comune" id="comune">
<option value="">Seleziona...</option>
</select></p>
<p><label for="cap">Cap</label><input type="text" name="cap" id="cap" readonly="readonly"/></p>
</form>
</body>
</html>
Codice PHP:
<?php
class data extends mysqli
{
//Selezione di tutte le regioni
public function getRegioni()
{
$query = "SELECT * FROM regioni";
if($result = parent::query($query))
{
if($result->num_rows > 0)
{
while($row = $result->fetch_array())
{
$regioni[] = array(
'cod_regione' => $row['cod_regione'],
'regione' => $row['regione']
);
}
return $regioni;
}
}
}
//Seleziona le province della regione scelta
public function getProvince($cod_regione)
{
$query = "SELECT * FROM province WHERE cod_regione = '".$cod_regione."'";
if($result = parent::query($query))
{
if($result->num_rows > 0)
{
while($row = $result->fetch_array())
{
$province[] = array(
'codice' => $row['cod_provincia'],
'nome' => $row['provincia']
);
}
return $province;
}
}
}
//Seleziona i comuni della provincia scelta
public function getComuni($cod_provincia)
{
$query = "SELECT * FROM comuni WHERE cod_provincia = '".$cod_provincia."'";
if($result = parent::query($query))
{
if($result->num_rows > 0)
{
while($row = $result->fetch_array())
{
$comuni[] = array(
'codice' => $row['cod_istat'],
'nome' => $row['comune']
);
}
return $comuni;
}
}
}
//Seleziona il cap del comune scelto
public function getCap($cod_istat)
{
$query = "SELECT * FROM cap WHERE cod_istat = '".$cod_istat."'";
if($result = parent::query($query))
{
if($result->num_rows == 1)
{
$row = $result->fetch_array();
$cap = $row['cap'];
return $cap;
}
}
}
}
?>
Codice PHP:
$(document).ready(function(){
$('#regione').change(function(){
var elem = $(this).val();
$.ajax({
type: 'POST',
url:'ajax/select.php',
dataType: 'json',
data: {'regione':elem},
success: function(res){
$('#provincia option').each(function(){$(this).remove()});
$('#provincia').append('<option selected="selected">Seleziona...</option>');
$('#comune option').each(function(){$(this).remove()});
$('#comune').append('<option selected="selected">Seleziona...</option>');
$('#cap').attr('value','');
$.each(res, function(i, e){
$('#provincia').append('<option value="' + e.codice + '">' + e.nome + '</option>');
});
}
});
});
$('#provincia').change(function(){
var elem = $(this).val();
$.ajax({
type: 'POST',
url:'ajax/select.php',
dataType: 'json',
data: {'provincia':elem},
success: function(res){
$('#comune option').each(function(){$(this).remove()});
$('#comune').append('<option selected="selected">Seleziona...</option>');
$('#cap').attr('value','');
$.each(res, function(i, e){
$('#comune').append('<option value="' + e.codice + '">' + e.nome + '</option>');
});
}
});
});
$('#comune').change(function(){
var elem = $(this).val();
$.ajax({
type: 'POST',
url:'ajax/select.php',
dataType: 'json',
data: {'cod_istat':elem},
success: function(res){
$('#cap').attr('value',res);
}
});
});
});
Codice PHP:
<?php
include_once('../config/config.php');
include_once('../class/data.class.php');
$mysqli = new data(HOST, USERNAME, PASSWORD, DATABASE);
if(isset($_POST['regione']))
{
$datastore = $mysqli->getProvince($_POST['regione']);
}
if(isset($_POST['provincia']))
{
$datastore = $mysqli->getComuni($_POST['provincia']);
}
if(isset($_POST['cod_istat']))
{
$datastore = $mysqli->getCap($_POST['cod_istat']);
}
echo json_encode($datastore);
?>
mi potreste aiutare a modificarlo per usarlo senza programmazione a oggetti, o almeno senza mysqli dato che su postgresql non funziona
grazie mille