Luego de un fin de semana reparador.... eran solo errores de sintaxis.... Si le interesa a alguien les dejo la base para insertar en cualquier pagina.
Código HTML:
<?
if (isset($_GET['c'])){
if ($_GET['sel'] != ""){
$sel = $_GET['sel'];
// sel es el NUMERO DE LA REGION, NO EL NOMBRE
$html = ctasxtipo($sel);
echo 'document.getElementById("cambia").innerHTML="'.$html.'";';
exit;
}
echo 'document.getElementById("cambia").innerHTML="<select name=\"dctas\" id=\"dctas\"></select>";';
}
?>
<head>
<script>
function adjs(url){
oldsc=document.getElementById("old_sc");
if(oldsc)
document.getElementsByTagName('body')[0].removeChild(oldsc);
sc=document.createElement('script');
sc.id="old_sc";
sc.src=url+'&'+Math.random();
document.getElementsByTagName('body')[0].appendChild(sc);
}
</script>
</head>
<body>
<select name="cuentas" id="cuentas" onchange="adjs('?c&sel='+this.value)">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select> <div id="cambia"><select name="dctas" id="dctas"></select></div>
</body>
</html>
Donde "ctasxtipo" es una funcion que lee desde un BD y llena los options del select.
en el código anterior me faltaba el "\" antes de las comillas... pff. ojo con eso.
El código es súper útil, lo saqué hace tiempo desde aquí pero no recuerdo quien lo escribió. De todas maneras no es complicado de analizar.
suerte