Agrego a las respuestas que ya te dieron que es perfectamente posible llenar el formulario original con datos provenientes de la comunicación asincrónica.
La idea es bastante sencilla; al presionar un botón ejecutas una función de JS que se encarga de crear el objeto AJAX, recoger el value del campo input correspondiente y enviar la llamada mediante el método open al servidor (puedes utilizar las funciones que te ha facilitado B** (
)). El servidor recibirá tu código con el cual buscará en BD algún registro que se corresponda con ese código. En caso que encuentre información la devuelves al cliente en formato XML o concatenando campos con algún caracter.
Por ejemplo si tienes información del nombre y apellido de la persona a la cual le corresponde ese ID, la puedes devolver así:
Código:
<registro>
<nombre>nombre</nombre>
<apellido>apellido</apellido>
</registro>
o así:
(Recomendable la 1º forma)
Con JS te encargas de parsear esa devolución (en el 1º caso con DOM y en el 2º separando los campos delimitados por tu caracter especial) y colocas cada dato en el value del input que corresponda.
De esta forma te evitas desde el servidor enviar un HTML completo del formulario a generar y, en cambio, solo envías los valores que deben ser colocados en los inputs en un formato X (XML o concatenados) para luego parsearlos y ubicarlos.
Queda en tí codificar esta secuencia de pasos, creo que en el foro hay bastantes ejemplos y soluciones que te pueden ayudar (comienza por las FAQ).
Saludos.