Saludos Clabers

les cuento que estoy creando un formulario con base a este TIP en el formulario voy creando una serie de campos (input y select) como veran en las imagenes a continuacion.



los campos se generan como se hace en el TIP que nombré y para la creacion de los select yo solo creo el div y con una funcion que llamo por medio de ajax hago la consulta del listado necesario y lo pego en el div que cree, esto para cada select que debo generar en una fila de campos!

Codigo de Ajax que llama la funcion c_listaActividades

Código :

function listaActividadescons(divid2){
    var divid2 = document.getElementById(divid2);
   ajax=newAjax();
   ajax.open('POST','pconsumibles/c_listaActividades',true);
   
   ajax.onreadystatechange=function(){
      if(ajax.readyState==4){
         resultado = ajax.responseText;
         divid2.innerHTML = ajax.responseText;
      }
   }
   ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   ajax.send("listar=0");
}


codigo en PHP que segun la busqueda crea un select que es el que le devuelvo al ajax pa que lo ubique en el DIV

Código PHP :

   function c_listaActividades(){
      $actividades = $this->db->query("SELECT idactividad,codigo FROM actividades ");
      $lista_actividades = '<select class="select50px" name="lstact[]" >';
      $lista_actividades .='<option value="-">Elija</option>';
      foreach ($actividades->result() as $actividad):
      $lista_actividades .='<option value='.$actividad->idactividad.'>'.$actividad->codigo.'</option>';
      endforeach;
      $lista_actividades .='</select>';
      echo $lista_actividades ;

   }


En el orden de ejecucion


  1. creo los div vacios para los select
  2. creo los campos
  3. todo lo pego al div contenedor
  4. ejecuto el llamado a la funcion de carga de ajax


Asi ejecuto el llamado a la funcion que carga los select

Código :

   listaEquipos(nEqui.id);
   alert('generando Actividades');
   listaActividadescons(nactiv2.id);
   alert('generando Responsables');
   listaResponsables(nResp.id);



carga el primer select y muestra el alert, al hacer click carga el listado


muestra el segundo alert al hacer click carga el ultimo listado

Ahora bien preguntaran porque los alert?! si son molestos y deberia ser transparente para el usuario la carga de los listados! y es ahy donde esta mi DUDA, como ven en la imagen debo cargar tres select y si yo lo colocara asi:

Código :

   listaEquipos(nEqui.id);
   listaActividadescons(nactiv2.id);
   listaResponsables(nResp.id);


solo me carga el primero y el resto se quedan en blanco X_xU o empieza a realizar acciones extrañas como cargar unos si y otros no!, el caso es que debe haber algo que confunde al compilador y pasa algo, la cuestion es como ustedes solucionarian esta falla?!, por ahora mi unica solucion es dejar los alert que le dan algo de tiempo "creo" y permite que cargen.

Gracias y saludos