Scusate, non è per uppare, ma non riesco a modificare il post precedente (problemi sul server?), che chiaramente è incompleto.

Ecco la domanda completa:

Grazie a quanti vorranno rispondere.

Sto cercando di implementare una form con una select dinamica.

Questo è il codice della form:
codice:
<html>

<head>
<script src="../jquery-1.4.4.js"></script>
<script type="text/javascript">

function popolaTipoPrestazione() {
   
    $.getJSON('prestazioni.php', {id_reparto:$('#reparto').val()}, function(data) {

        var select = $('#tipoPrestazione');
        var options = select.attr('options');
        $('option', select).remove();

        $.each(data, function(index, array) {
            options[options.length] = new Option(array['PRESTAZIONE']);
        });

    });

}

$(document).ready(function() {
	
	popolaTipoPrestazione();
	$('#reparto').change(function() {
		popolaTipoPrestazione();
	});
	
});
</script>
</head>

<body>
<label for="reparto">Reparto:</label>

<select id="reparto" name="reparto">
<option selected="selected">-- seleziona --</option>
<?

// mi connetto al DB
include("dbconfig.php");

// Query selezione tutti i reparti. 
$sql = "select * from reparti order by reparto"; 

// Eseguo la query. 
$result = mysql_query($sql, $conn); 
while($reparto = mysql_fetch_array($result)) {
?>

<option value="<?php echo $reparto['id']; ?>"><?php echo $reparto['reparto']; ?></option>

<?php
}
?>

</select>
</p>



Prestazione:
    <select name="PRESTAZIONE" id="TipoPrestazione">
    </select>
</p>
</body>
</html>
Questo il codice del file richiamato da json:

codice:
<?

if(isset($_GET['id_reparto'])) {
	 
$reparto = $_GET['id_reparto'];
    $stmt = $pdo->prepare("SELECT PRESTAZIONE FROM generale WHERE id_reparto = '$reparto' ORDER BY PRESTAZIONE");
    $stmt->execute(array($_GET['id_reparto']));
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

}

echo json_encode($rows);
?>
Il problema che ho é che la select Prestazione non viene popolata; per altro analizzando la risposta del server con Firebug l'array viene popolato. Eppure...

Dove sbaglio?