Ah! Ya veo. Tu ventana era un iframe: 'type' : 'iframe' y la API decía que funcionaría anteponiendo "parent" al codigo: parent.jQuery.fancybox.close(); Que bueno que te haya funcionado.
Respecto a la última pregunta, me parece que estás confundiendo codigo de lado servidor con codigo de lado cliente :o/
Lo que te puedo decir que el evento onClick se ejecuta "antes" que el evento submit. Es decir que si facybox se cierre y dispara "return false" entonces no va a pasar nada mas. Lo que podes probar es poner el evento "onSubmit", lo que en jQuery es sencillamente .submit:
http://api.jquery.com/submit/
Proba esto en el header, dentro de document.ready:
Cita: $('#elegir').submit(function() {
parent.jQuery.fancybox.close();
return false;
});
Alternativamente esto puede funcionar también:
Cita: $('#elegir').click(function() {
parent.jQuery.fancybox.close();
$('#nombreFormulario').submit();
});
PAra esto ultimo solo tendrías que poner el id del formulario donde dice nombreFormulario