A ver, no confundas, responseText tal cual dice su nombre es para indicar y tratar la respuesta como texto por lo tanto Javascript no los tratará como XML, esto no quiere decir que retornará toda la página o solo una parte, nada de eso tiene que ver ya que eso depende de como PHP entregue la respuesta a la petición, recuerda que XMLHttpRequest unicamente funciona como "puente" para realizar peticiones al servidor sin que el navegador tenga que recargar la página, por lo tanto, lo que retorne es explícitamente lo que PHP entregue en tu caso, si PHP retorna toda la página es lo que obtendrás en la respuesta desde ajax...
Cita: Así que creo que es mejor enviar a otra pagina la petición, procesar en esa página y solo mandar devuelta la respuesta. Así es más sencillo aunque se crearían más páginas.
Eso depende de como quieras trabajar, pero nada tiene que ver con responseText, pero el problema de que te trae datos que no son de tu utilidad tiene que ver como entrega PHP el resultado al navegador, en tu caso a la petición ajax...
Cita: Otra cosa que estaba haciendo mal es que pensaba que tenía que utilizar los name que le había puesto en el html, pero son los name que mando en el query_string.
No, el atributo name es el que le entrega el navegador a PHP para que este le asigne el valor indicado, trabajando con Javascript es mejor usar el atributo ID, aunque esto no quiere decir que este mal como lo estas haciendo, la unica diferencia es que se supone que el valor del atributo ID es unico, por lo tanto no es necesario indicar el index del item a llamar (getElementByName['nombre'][0], el 0 sería el index del item)