Bueno, como sabrás el envió por método POST o GET en AJAX tiene sus diferencias...(pero podría ser que al crear el combo por AJAX este perdió sus propiedades-la mas importante es name, verificaste que al cargarlo por ajax se cargo correctamente, no le des solo ver código por que por defecto te muestra lo que está en memoria). Intenta esto, dale un color de fondo a tu combo que se carga por AJAX... la segunda vez que se cargue, debe mantener ese color de no ser así es este el problema. De lo contrario te dejo esto sobre GET y POST:
Un ejemplo:
El código de mi librería AJAX tiene esto:
Identificar método get o post.
Código:
if(this.xParm.method.toLowerCase()!='get'){
var SndParm = this.xParm.Paramt;
}else{
var SndParm=null;
url = url+'?'+this.xParm.Paramt;
}
Ahora procedo a esto:
Código:
ConnAJX=xxmlhttp; xxmlhttp=null; //Liberar objeto
window['NewFunct'] = this.xParm.onComplete;
ConnAJX.onreadystatechange = this.xParm.onSuccess; //Funcion de retorno
ConnAJX.open(this.xParm.method,url,this.xParm.asynchronous);
ConnAJX.setRequestHeader('Content-Type',this.xParm.contentType); //Header
ConnAJX.send(SndParm); //falta escapar los caracteres
tiempo=setTimeout('ErrorConn()',this.xParm.waitinterval*1000);
El analisis:
ConnAJX es el objecto XMLHTTPR...
Si es por método POST:
ConnAJX.open('POST',url,true); //url = respuest.php
ConnAJX.send(variableparametros);//Aqui se pasan los parámetros
Si es por método GET:
ConnAJX.open('GET',url,true); //url = respuest.php?valor1='hola?&valor2='hola
ConnAJX.send(null); //Debe ir sin parámetros
//Como lo mas probable es que necesites reponer la etiqueta Name y probablemente el ID:
//Si intentas reponer tus atributos, debes tener en cuenta que setAttribute no funciona a en IE:
Código:
if(!IEx){
Mitagtemp.setAttribute(NodeAttr[i],AtributosC[i]);
}else{
document.getElementById(Mitagtemp.id)[NodeAttr[i]] = AtributosC[i];
}
//He creado esta función para que puedas revisar si existe el name o el id
var KAtt = exx.attributes.length;//Contar atributos
Con esto tal vez podrás verificar atributos de tu select después de invocarlos por AJAX,
solo debes pasar el ID.
Código:
function verificar(varID){
exx=document.getElementById(varID);
KAtt = exx.attributes.length;//Contar atributos
for (var q=0;q<KAtt;q++){
Union = exx.attributes.item(q);
alert('Nombre nodo'+Union.nodeName+'Valor:'+Union.value);
}
}