Hola amigo, verás si funciona lo acabo de probar.
Probablemente te has olvidado de indicar el script JS en el documento HTML.
Yo he echo uno y lo he probado, añadi 1 nueva funcion, la de ocultar la capa que no estes solicitando ya que al presionar sobre cualquier opcion la capa se muestra y al presionar sobre la otra opcion esta misma capa sigue mostrandose y tambien la que acabas de solicitar.
Código HTML:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script language="javascript" type="text/javascript"> function showOptions(s,h){
document.getElementById(s).style.display = 'block';
document.getElementById(h).style.display = 'none';
}
<form action="login.php" method="post">
<option onclick="showOptions('restaurante','hotel');">Restaurante
</option>
<option onclick="showOptions('hotel','restaurante');">Hotel
</option>
<div id="restaurante" style="display:none;">
<div id="hotel" style="display:none;">
<option value="B&B">B
&B </option>
<option value="piscina">piscina</option>
<option value="WiFi">WiFi</option>
<option value="Minibar">Minibar</option>
</select>
</div>
</form>
</body>
</html>
Saludos