Las comillas simples que encierran onchange: como dentro de onchange hay otras comillas simples, toma la primera que encuentra como final de onchange.
Pon comillas dobles y las escapas con \" para que no interfieran con las usadas para encerrar echo.
En innerHTML hay un espacio en blanco.
Cita: echo "<select name='carpetas' class='casillas' id='carpetas' onchange='var ruta=document.getElementById('ruta');var
carpeta=document.getElementById('carpetas');ruta.i nnerHTML=carpetas.options[carpetas.selectedIndex].value;var
rutaphp=document.getElementById('rutaphp');rutaphp .value=carpetas.options[carpetas.selectedIndex].value;'>";
Código PHP:
echo "<select name='carpetas' class='casillas' id='carpetas' onchange=\"var ruta=document.getElementById('ruta');
var carpeta=document.getElementById('carpetas');
ruta.innerHTML=carpeta.options[carpeta.selectedIndex].value;
var rutaphp=document.getElementById('rutaphp');rutaphp.value=carpeta.options[carpeta.selectedIndex].value;\">";
Otro método para "imprimir" trozos largos es usar heredoc syntax:
echo <<<EOT
blah blah blah
todo el código html aquí
blah blah blah
EOT;