A prescindere dalla struttura delle tabelle nel tuo database, il procedimento è lo stesso di quello che solitamente viene utilizzato per recuperare qualsiasi tipo di dato inviato attraverso un form. Nel tuo case ti basta controllare di volta in volta se sono state trasmesse oppure no le informazioni necessarie che ti permetteranno di procedere nell'esecuzione dello script. Esempio (pseudo-codice)...
Codice PHP:
<?php
/*
controlla sia stata effettuata una scelta dalla prima select-box
quella contenente l'id delle categorie dei prodotti, per intenderci
*/
if(isset($_POST['cat_id'])) {
$cat_id = $_POST['cat_id'];
/*
recuperato in $cat_id l'id della categoria dei prodotti
potrai fare una semplice query del tipo
SELECT * FROM prodotti WHERE categoria = '$cat_id'
e infine stampare i risultati in una nuova select box
che si occuperà di inviare i dati alla pagina che andrà
a recuperare il prezzo per il prodotto selezionato
se non è stata selezionata nessuna categoria
allora staperai a video la select-box interessata
*/
} else {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
CATEGORIE: <select name="cat_id" onChange="this.form.submit();">
<option value="1">Categoria1</option>
<option value="2">Categoria2</option>
<option value="3">Categoria3</option>
</form>
<?php
}
?>
non l'ho provato ma dovrebbe andare... Quello che realmente ti potrebbe tornare utile per eventuali altre select-box è questo evento onChange="this.form.submit(); che ti consente di inviare i dati alla stessa pagina e recuperare dinamicamente il contenuto che desideri. Alla fine, quando mostrerai l'ultima select, quella con i prodotti, potrai aggiungere un pulsante (type=submit) e indicare nell'action del form l'indirizzo della pagina che ti fornirà il prezzo per il prodotto selezionato.