Bonjour,
tu as plusieurs façon de le faire.
1 Tu peux utiliser un select avec optGroup ça permet d'avoir une seule liste du genre :
<select NAME="ListeUrl" SIZE=1 onChange="ChangeUrl(this.form)">
<optgroup label="Sport">
<option value="foot.php">foot</option>
<option value="basket.php">basket</option>
</optgroup>
<optgroup label="Travail">
<option value="matin.php">matin</option>
<option value="midi.php">midi</option>
<option value="soir.php">soir</option>
</optgroup>
</select>
2 Tu peux créer autant de select qu'il y a de type (un pour sport, pour travail...etc..) et les mettres en display:none.
Il faudra alors créer une autre fonction javascript qui affiche le sous select (et cache les autres...) qui convient selon le choix actuel. Ensuite pour ce sous select utiliser la fonction ChangeUrl.
3 Enfin une autre solution qui me vient en tête c'est d'avoir uniquement deux select, le premier c'est celui que tu as déjà crée.
Le deuxième serait un select dynamique qui se remplirait/viderait selon le premier select.