ti indico i diversi passaggi che ho utilizzato per un mio sito:

1--- Tra i tag HEAD ---

codice:
<script>
var elementi = new Array(
<?
   $q1="SELECT marca_mag, versione_mag FROM magazzino GROUP BY marca_mag, versione_mag ORDER BY marca_mag, versione_mag;";
   $res1=mysql_query($q1);
   echo '{text:"--- Tutti ---", value:"", indicatore:"0"}';
   $js_w_marca="";
   while ($row1=mysql_fetch_assoc($res1))
                     {
                      $js_versione=htmlentities($row1[versione_mag]);
                      $js_marca=htmlentities($row1[marca_mag]);
                      if ($js_w_marca != $js_marca)
                      {
  					    echo ","."\n";
                        echo '{text:"--- Tutti ---", value:"", indicatore:"'.$js_marca.'"}';
                      } 
					  echo ","."\n";
                      echo '{text:"'.$js_versione.'", value:"'.$js_versione.'", indicatore:"'.$js_marca.'"}';
					  $js_w_marca=$js_marca;
                     } 
 ?>
);
</script>
<script>
function travasa(dove, valore) {
 var k=0;
 for (j=0; j<elementi.length; j++)
  if (elementi[j].indicatore==valore) {
   dove.options[k]=new Option(elementi[j].text, elementi[j].value);
   k++
  }
 dove.options.length=k;  
}
</script>
2--- Nel tag Body
codice:
<body onload="travasa(document.f.versione_inp,'0');">
3-- questa la select primaria
codice:
<select name="marca_inp" id="marca_inp" class="selectricerca" onChange="travasa(this.form.versione_inp, this.options[this.selectedIndex].value);">
                            <option value="0" selected>--- Tutte ---</option>
                  <?
                    $q1="SELECT * FROM magazzino GROUP BY marca_mag;";
                    $res1=mysql_query($q1);
                    while ($row1=mysql_fetch_assoc($res1))
                     {
                      echo '<option value="'.$row1["marca_mag"].'"';
                      echo ' >';
                      echo $row1["marca_mag"].'</option>';

                     } 
                  ?>
                      </select>
4-- Questa la select secondaria (Vuota perche' dinamica).
codice:
<select name="versione_inp" id="versione_inp" class="selectricerca">
                            </select>
Il risultato lo trovi qui