Sto cercando di creare una pagina dove alla selezione di una prima select ne compare una seconda (i cui valori, letti da un database, dipendono dalla scelta precedente) e alla scelta della seconda vengono mostrati i risultati in un div.

Allego delle immagini per farvi capire...

Inizio:


Alla scelta della prima select:


Alla scelta della seconda select:


Questo è il codice:

index.php
Codice PHP:
<html>
<!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=ISO-8859-1" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
 
    $('#sel_continenti').change(function(){
        var cont = $('#sel_continenti').attr('value');
        
        $.post("selection.php", {id_cont:cont}, function(data){
            $("#sel_nazioni").empty();
            //$("div#result").empty();
            $("div#nazioni").empty();
            $("div#result").append("prova2
");
            //$("div#result").append(document.createTextNode("prova"));
            $("#sel_nazioni").prepend(data);
            $("div#nazioni").prepend(data);
        });
    });
     
    $('#sel_nazioni').change(function(){
        var id_naz = $('#sel_nazioni').attr('value');
     
        $.post("result.php", {id:id_naz}, function(data){
            $("div#result").empty();
            $("div#result").append("prova3
");
            //$("div#result").prepend(data);
        });
    });
});
</script>
</head>
 
 
<body>
<div id="continenti">
<?php
include_once 'option.class.php';
$obj = new Option();
$obj->ShowContinenti();
?>
</div>
 
<div id="nazioni">
<!--Seleziona una nazione:

<select id="sel_nazioni" name="sel_nazioni"><option value="no">Scegli...</option>
</select>-->
</div>
 
<div id="result">
prova1

</div>
 
 
</body>
 
</html>
File option.class.php
Codice PHP:
<?php
class Option
{
    public 
$conn;
 
        public function 
__construct()
        {
            
$this->DbConnectAndSelect();
        }
 
        protected function 
DbConnectAndSelect()
        {
            
//include_once "db_config.php";
            //$this->conn = mysql_connect($db_host,$username,$password);
            
$this->conn pg_connect("host=**** port=**** user=**** password=**** dbname=****");
            
//mysql_select_db($db_name, $this->conn);
            
return TRUE;
        }
 
        public function 
ShowContinenti()
        {
            echo 
'Seleziona un continente:
'
;
            echo 
'<select id="sel_continenti" name="sel_continenti"><option value="no">Scegli...</option>';
 
            
$sql "SELECT * FROM continenti";
            
//$res = mysql_query($sql,$this->conn);
            
$res pg_query($this->conn,$sql);
 
                while(
$row pg_fetch_row($res))
                {
                    echo 
'<option value="' $row[0] . '">' $row[1] . '</option>';
                }
 
            echo 
'</select>';
        }
 
        
/*public function ShowNazioni()
        {
            if($_POST['id_cont'] == "no")
            {
                die;
            }
             //echo 'Seleziona una nazione:
';
            //echo '<select id="sel_nazioni" name="sel_nazioni">';
             $id_cont = $_POST['id_cont'];
            $sql = "SELECT * FROM nazioni WHERE id_cont=$id_cont";
            $res = pg_query($this->conn,$sql);
                //echo'<option value="no">Scegli...</option>';
                while($row = pg_fetch_row($res))
                {
                    echo '<option value="' . $row[0] . '">' . $row[2] . '</option>';
                }
             //echo '</select>';
 
        }*/
        
        
public function ShowNazioni()
        {
            if(
$_POST['id_cont'] == "no")
            {
                die;
            }
             echo 
'Seleziona una nazione:
'
;
            echo 
'<select id="sel_nazioni" name="sel_nazioni">';
             
$id_cont $_POST['id_cont'];
            
$sql "SELECT * FROM nazioni WHERE id_cont=$id_cont";
            
$res pg_query($this->conn,$sql);
            echo
'<option value="no">Scegli...</option>';
            while(
$row pg_fetch_row($res)) {
                echo 
'<option value="' $row[0] . '">' $row[2] . '</option>';
            }
            echo 
'</select>';
        }
 
        public function 
ShowResult()
        {
            echo 
"dentro shoresult()";
            if(
$_POST['id'] == "no")
            {
                echo 
"post id=no";
                die;
            }
            echo 
'

Hai scelto la nazione: '
;
            
$id $_POST['id'];
            
$sql "SELECT * FROM nazioni WHERE id=$id";
            
$res pg_query($this->conn,$sql);
            
$row pg_fetch_row($res);
 
            echo 
'id: '.$row[0].' id_cont: '.$row[1].' nazione: '.$row[2];
        }
}
 
?>
File selection.php
Codice PHP:
<?php
include_once 'option.class.php';
$obj = new Option();
$obj->ShowNazioni();
?>
File result.php

Codice PHP:
<?php
include_once 'option.class.php';
$obj = new Option();
$obj->ShowResult();
?>
Premetto che il database funziona (visto che le due select vanno), inoltre se guardate nel codice di index ho messo per semplificare che al cambiamento della seconda select nel div#result appaia scritto "prova3"... ma questo non succede! come mai?? dove sbaglio?