??????
php se ejecuta en el servidor, entonces va imprimiendo linealmente las variables php en el html.
el
Código PHP:
document.getElementById("direccion").value="valor" ;
se imprime antes de que se cree ese elemento('direccion'), osea estas asignandolo a un elemento que en ese instante no existe.
Te recomiendo imprimirlo directamente en el value del input.