Hola:
La verdad es que como no recargues la página con la opción deseada (por ejemplo con un formulario a $_PHPSELF (no estoy seguro si se escribe así) o el action a cadena vacía, o usas iframes o cargues todo (y muestres/ocultes capas)... creo que son todas las posibilidades que planteas... no se me ocurre nada... usando ajax podrías reemplazar contenidos de capas... pero tal vez las otras opciones sean mejor...
Saludos