Suponiendo que lo que quieres es actualizar el segundo select con los registros de una base de datos.
Esta es una forma de hacerlo el problema es que se recarga la pagina, puedes mirar otros sistemas en ajax.
Primero la funcion javascript, lo que hace es recoger los valores de los select y recargar la pagina luego los datos se recogen con get
Código:
<script language="JavaScript" type="text/javascript">
// ESTA PAGINA REQUIERE JAVASCRIPT ACTIVADO //<!--
function repe() {
var select1=document.f1.select1.value
var select2=document.f1.select2.value
location.href = ("admin_catalogo.php?&select1=" + select1 + "&select2=" + select2);
}
--></script>
Código PHP:
?>
<form name="f1" enctype="multipart/form-data" method="post" action="<?=$PHP_SELF?>">
<select name="select1" >
<option value=""> </option>
<option value="valor1 "<? if ($_GET[select1]=="valor1"){echo "selected";}?>>valor1 </option>
<option value="valor2 "<? if ($_GET[select1]=="valor2"){echo "selected";}?>>valor2 </option>
</select>
<select name="select2" >
<option value=""> </option>
<?
db_conecta();
$result = mysql_query("select * FROM tu_tabla where tu_campo='$_GET[select1]'");
if (!$result){exit ("Error al pedir consulta");}
while($row = mysql_fetch_row($result)) {
//aqui utiliza el indice numerico de los resultados que quieres que muestre, en este caso el cero
?>
<option value="<?= $row[0]; ?>"<? if ($_GET[select2]==$row[0]){echo "selected";}?>> <?= $row[0]; ?> </option>
<?
}
?>
</select>
Revisa el codigo porque lo acabo de hacer y puede tener algun error, pero creo que muestra una manera sencilla de hacerlo.