respecto a tu primera consulta, aqui un ejemplo del codigo que intente.
Código:
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Test Development</title>
<script type='text/javascript'>
self.onload = function(){
var select = document.getElementsByTagName("select")[0];
for(var i = 1; i < 10; i++) select[i] = new Option(i,i);
select.disabled = false;
select.focus();
}
</script>
<style type='text/css'>
</style>
</head>
<body>
<select disabled="disabled"><option value="0">0</option></select>
</body></html>
si el problema es en el bucle, entonces debe ser que no estas esperando a la respuesta de AJAX. para eso, tienes que hacer la peticion sincronizada. es decir, el tercer parametro de open con valor false.
respecto a tu segunda consulta, el error debe ser porque la variable canal no existe en ningun lugar de tu codigo. tienes que definirla antes de usuarla.