Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Combo en formularios

Estas en el tema de Combo en formularios en el foro de Frameworks JS en Foros del Web. Hola apenas estoy empezando a utilizar ajax y php quisiera saber si se puede pasar el valor de un combobox y al seleccionar una opcion ...
  #1 (permalink)  
Antiguo 25/07/2011, 08:50
 
Fecha de Ingreso: julio-2011
Mensajes: 32
Antigüedad: 9 años, 3 meses
Puntos: 0
Pregunta Combo en formularios

Hola apenas estoy empezando a utilizar ajax y php quisiera saber si se puede pasar el valor de un combobox y al seleccionar una opcion mandar ese valor y lo pueda usar en un query para generar en el mismo formulario otro select , en conclusion un select y al seleccionar una opcion cambie el otro select sin cargar la pagina de nuevo


Ayuda y gracias
  #2 (permalink)  
Antiguo 25/07/2011, 15:49
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 10 años, 3 meses
Puntos: 27
Respuesta: Combo en formularios

Sí, se puede.



Como me da que no querías solo esa respuesta, aquí va un esqueleto general del código:
Código Javascript:
Ver original
  1. <select onchange="primerComboCambiado();">
  2.   ...
  3. </select>
  4.  
  5. <select id="comobobx2"></select> <!--- De momento vacio, hasta que carguemos las cosas por AJAX --->
  6.  
  7. <script>
  8.  
  9.   function primerComboCambiado() {
  10.     // Obtener valor actual del combobox
  11.     // Mandarlo por ajax
  12.     // Cargar la respuesta en el combobox2
  13.   }
  14.  
  15. </script>

En el lado del servidor (PHP), es muy directo:

1. Recibes el valor del combobox y lo almacenas
2. Haces la query
3. Retornas los datos en un formato facil de usar en JavaScript (léase JSON =) )


Dicho todo esto, creo que si usases jQuery (http://jquery.com/) podrías acelerar muchísimo tu trabajo, porque hay muchos trozos de codigo disponibles de los que puedes aprender y usarlos.
__________________
I (L) Google
  #3 (permalink)  
Antiguo 25/07/2011, 20:43
 
Fecha de Ingreso: julio-2011
Mensajes: 32
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: Combo en formularios

Hola si me podrias detallar como mando el valor por ajax en la funcion que me pones y cargar la respuesta en el combobox2, apenas ando empezando a usar ajax.. gracias

function primerComboCambiado() {
// Obtener valor actual del combobox
// Mandarlo por ajax
// Cargar la respuesta en el combobox2
  #4 (permalink)  
Antiguo 26/07/2011, 11:39
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 10 años, 3 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

Etiquetas: ajax, combo, php, select, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:50.