Ver Mensaje Individual
  #11 (permalink)  
Antiguo 17/04/2009, 09:48
Avatar de lobo_php
lobo_php
 
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 17 años
Puntos: 75
Respuesta: llenado de un combo

bueno como no entendi muy bien hice lo mas facil pero creo q mas largo xD

lo hice asi:
Código PHP:
Ver original
  1. $consulta_convenio="SELECT c.PCNITC, c.PCNOMC FROM SGDATOS.PCCON05F as c";
  2. $rsc=odbc_exec($conectar,$consulta_convenio);
  3. $c=0;
  4. $info="";
  5. while (odbc_fetch_row($rsc)){
  6.     $nom_convenio[$c]=trim(odbc_result($rsc,'PCNOMC'));
  7.     $id_cnv[$c]=trim(odbc_result($rsc,'PCNITC'));
  8.     //echo $nom_convenio[$c];
  9.     //echo $id_cnv[$c];
  10.     //echo "<option value='$id_cnv[$c]'>$nom_convenio[$c]</option>";
  11.     $info = $info.$id_cnv[$c].":".$nom_convenio[$c].";";
  12.     $c++;
  13. }
  14. echo $info;


eso en el .php y en el javascript me toco esto:
Código JAVASCRIPT:
Ver original
  1. if (ajax.readyState==4){
  2.                 //document.getElementById(destino).value=ajax.responseText;
  3.                 var combo2 = document.getElementById('convenio');
  4.                 var info_todo = ajax.responseText;
  5.                 var info_cu = info_todo.split(';');
  6.                 var vector = info_todo.split(';');
  7.                 var y=0;
  8.                 for(y=0;y<=vector.length-2;y++){
  9.                     var convenio = vector[y].split(':');
  10.                     var opcion = new Option(convenio['1'],convenio['0']);
  11.                     combo2.options[y] = opcion;
  12.                 }
  13.             }

y ahora me funciona tanto en Firefox como en IE



ahora tengo dos problemas:

el primero que es el mas sencillo (creo yo) para solucionar es que hago lo siguiente segun un evento:
Código JAVASCRIPT:
Ver original
  1. function habilitar_cencos(valor){
  2.     if(valor=="1"){
  3.         alert("remove readonly");
  4.         document.getElementById("cencos").removeAttribute('readonly');
  5.     }
  6.     if(valor=="0"){
  7.         document.getElementById("cencos").value = "";
  8.         document.getElementById("cencos").setAttribute('readonly', 'readonly');
  9.     }
  10.     //document.getElementById("cencos").setAttribute('readonly', valor);
  11. }

lo que hace este codigo es que depende del valor que tenga la variable 'valor' quita en un input text su parametro 'readonly' es decir, deja escribir o no deja escribir, lo bueno es q en firefox me funciona, lo malo es que en IE no me funciona xD


el otro punto es el siguiente:

Código javascript:
Ver original
  1. if(bandera=="0"){
  2.         //borramos de nuevo
  3.         var combo1 = document.getElementById('convenio');
  4.         var n = combo1.options.length;
  5.         var j=0;
  6.         for(j;j<=n;j++){
  7.             combo1.options[j]=null;
  8.         }
  9.     }

ahi quito todas las opciones del select, lo raro es q tanto en FF como en IE me las va quitando de a 2 o 3 cuando se repite el evento, no me las quita de una, en el for que va de 0 a 9 me carga hasta el 4, luego hasta el 2 luego hasta el 1 y luego si se desaparece todo.
__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175

Última edición por lobo_php; 17/04/2009 a las 10:03 Razón: me faltaron los otros errores