Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/07/2011, 11:39
Avatar de perryjr
perryjr
 
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 9 meses
Puntos: 27
Respuesta: Combo en formularios

A ver, el problema de esto es hacer una solución que funcione en cada navegador, cada uno funciona distinto y tiene sus problemas. Yo personalmente elejiría jquery sin dudarlo (o Mootools, que tampoco estoy vendiendo nada a nadie =) ). Con jQuery sería algo así:
Código HTML:
Ver original
  1. <div id="combobox-wrapper"></div>
  2.  
  3. function cargar() {
  4.   // Obtengo el valor del combobox1
  5.   var valor = $('combo1').value();
  6.  
  7.   $.getJSON('/datos.php?valor1=' + valor, function(data) {
  8.     var items = []; // una matriz
  9.     $.each(data, function(index, item) {
  10.       // Agrega cada opción del combobox a la matriz
  11.       items.push('<option>' + item + '</option>');
  12.     });
  13.  
  14.     $('<select/>', {
  15.       html: items.join(''), // junto todos los option
  16.     }).appendTo($('#combobx-wrapper'); // lo ponemos en el wrapper
  17.   });
  18. }

No he llegado a pdoer comprobar la solución si todo funciona exactamente bien, pero tómatelo como un punto de entrada para tus investigaciones por Google. jQuery tiene millones de aficionados que han ido colgando trozos de codigo que te ayudarán mucho a aprender (y este foro, claro)


----------------------

Como nota adicional, te comento el método de unir cadenas que he usado, por si te resulta extraño:
Código Javascript:
Ver original
  1. var cadena = '';
  2. for(var i = 0; i < 100; i++) {
  3.   cadena += 'elemento nº ' + i + '|';
  4. }
  5. alert(cadena);

Es muuuuuucho más lento que hacer esto:
Código Javascript:
Ver original
  1. var cadena = []; // o new Array();, que es lo mismo
  2. for(var i = 0; i < 100; i++) {
  3.   cadena[i] = 'elemento nº ' + i + '|';
  4. }
  5. alert(cadena.join('')); // junto todas las cadenas usando el caracter nada (''),
  6.                                 // aunque podría poner ('ee'), y se juntarían usando «ee»
__________________
I (L) Google