Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Llmado de dos funciones similares en dos selects distintos

Estas en el tema de Llmado de dos funciones similares en dos selects distintos en el foro de Javascript en Foros del Web. Saludos amigos. Tengo una confusión en algo, primero que todo espero sepan disculparme si posteo mi pregunta en el foro equivocado. Tengo un formulario donde ...
  #1 (permalink)  
Antiguo 11/09/2014, 10:46
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 13 años, 7 meses
Puntos: 0
Llmado de dos funciones similares en dos selects distintos

Saludos amigos.

Tengo una confusión en algo, primero que todo espero sepan disculparme si posteo mi pregunta en el foro equivocado.

Tengo un formulario donde el usuario dependiendo del select que elija, se muestra en otro select cierta información, hasta alli funciona correctamente, pero necesito que en el mismo form, al seleccionar otro select, se muestre otra información en otro select diferente, para ello utilizo un cógido ajax libre que está en internet:

archivo ajax.js, es llamado en el formulario asi <script src="ajax.js"></script>
Código HTML:
function load(str){
var xmlhttp;

if (window.XMLHttpRequest)  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("POST","proc.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("q="+str);
}
En el select tengo:

Código HTML:
<select  onClick="load(this.value)" > 
Hace el proceso en proc.php y funciona ok.

Ahora, no se como diferenciar el llamado en el otro select para la otra función (igual a la mostrada arriba) y que muestre los otros datos. Debo llarmar otro archivo? (<script src="ajax1.js"></script>), debo diferenciar el llamado en <select onClick="load(this.value)" >?

No se si se entiende bien.... espero que si.

Cualquier ayuda... es bienvenida. Muchisimas gracias por la colaboración que puedan brindarme.
  #2 (permalink)  
Antiguo 11/09/2014, 13:31
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Llmado de dos funciones similares en dos selects distintos

Ya que la función recibe un valor sin hacer distinción de su procedencia, basta con que invoques a dicha función en el otro combo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 12/09/2014, 09:09
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Llmado de dos funciones similares en dos selects distintos

Gracias Alexis88 por tu comentario, pero me podrias citar como lo debería hacer? es q lo he intentado todo, y no me ha salido, espero puedas colaborarme.
  #4 (permalink)  
Antiguo 12/09/2014, 10:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Llmado de dos funciones similares en dos selects distintos

Hazlo como te lo digo, es decir, ya tienes un combo en el cual ejecutas una función al darle un clic (que en realidad debería de ser cuando eliges una opción), ahora, crea otro combo y haz lo mismo.

Código HTML:
Ver original
  1. <!-- Combo 1 -->
  2. <select onchange = "load(this.value)">
  3.  
  4. <!-- Combo 2 -->
  5. <select onchange = "load(this.value)">

Las funciones están para reutilizarlas, no es necesario escribir una función para cada elemento.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 12/09/2014, 13:42
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Llmado de dos funciones similares en dos selects distintos

Creeme que ya he intentado eso, incluso es asi como lo tengo, pero no funciona, al seleccionar el combo 1 funciona bien, pero al seleccionar el combo 2, lo que había mostrado con el combo 1, se oculta, y no muestra lo q deberia mostrar el combo 2. Por eso preguntaba como hago para diferenciar el llamado de la funcion en cada uno de los combos.

Gracias por tu comentario.
  #6 (permalink)  
Antiguo 12/09/2014, 14:28
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Llmado de dos funciones similares en dos selects distintos

Si deseas que la respuesta de la primera llamada se siga visualizando, puedes concatenar el nuevo resultado al anterior o mostrarlo en otro elemento.

Código Javascript:
Ver original
  1. document.getElementById("myDiv").innerHTML += xmlhttp.responseText;

Con ese signo + antes del de igualdad, concatenarás el contenido actual del elemento con la nueva respuesta. Ahora que también te conviene concatenar con un salto de línea para que no se muestre todo junto.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 16/09/2014, 13:48
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Llmado de dos funciones similares en dos selects distintos

Hola Alexis88, intenté lo que me recomendaste, pero al colcoarle ese + en esa linea, cada vez que doy click en el combo, aparece el resultado que quiero mostrar, es decir, si doy 5 veces click, aparece 5 resultados uno seguido del otro.
  #8 (permalink)  
Antiguo 16/09/2014, 13:57
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Llmado de dos funciones similares en dos selects distintos

¿Y qué esperabas que sucediera si se está concatenando lo que ya había con lo nuevo? ¿Quieres que al seleccionar una opción del segundo <select>, se siga visualizando la respuesta del primero y se adhiera la respuesta generada por el segundo o que esta última aparezca en lugar de la primera?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 16/09/2014, 14:03
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Llmado de dos funciones similares en dos selects distintos

No, lo que yo quiero es que al seleccionar un combo, este muestre una información, y al seleccionar el otro combo, este muestre otra información diferente, no concatenada con la otra ni sobreexpuesta, que se muestren las dos. Si me hago entender?
  #10 (permalink)  
Antiguo 16/09/2014, 14:06
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Llmado de dos funciones similares en dos selects distintos

La solución es tan sencilla que me cuesta creer que no la hayas imaginado. Si deseas obtener y mostrar dos respuestas distintas y por separado, simplemente apunta la salida de la respuesta hacia dos elementos distintos, por ejemplo, un <div> para la primera respuesta y un segundo <div> para la siguiente. En tu función, veo que tomas al elemento de id 'miDiv', lo que tendrías que hacer es enviar a la función el id de cada <div> y así lo tomarías en la función para asignarle el valor respectivo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 17/09/2014, 14:30
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Llmado de dos funciones similares en dos selects distintos

Nuevamente hola Alexis88, te cuento que lo tengo justo asi como lo dices, un combo se muestra en el div asi
Código HTML:
Ver original
  1. <div id="myDiv"></div>
, en el otro combo tengo
Código HTML:
Ver original
  1. <div id="myDiv1"></div>
, y en cada funcion los llamo con su respectivo id.... pero sucede que al ejecutar el primer combo, funciona bien, mostrando la info respectiva, pero al seleccionar el otro combo, desaparece lo que habia mostrado con el primer combo.
  #12 (permalink)  
Antiguo 17/09/2014, 15:10
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 17 años
Puntos: 51
Respuesta: Llmado de dos funciones similares en dos selects distintos

creo que es sencillo lo único que tienes que ampliar un poquito la función load

Código HTML:
Ver original
  1. function load(str,container, phpscript){
  2. var xmlhttp;
  3.  
  4. if (window.XMLHttpRequest)  {// code for IE7+, Firefox, Chrome, Opera, Safari
  5.   xmlhttp=new XMLHttpRequest();
  6.   }
  7. else  {// code for IE6, IE5
  8.   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  9.   }
  10. xmlhttp.onreadystatechange=function()  {
  11.   if (xmlhttp.readyState==4 && xmlhttp.status==200)    {
  12.    document.getElementById(container).innerHTML=xmlhttp.responseText;
  13.     }
  14.   }
  15. xmlhttp.open("POST",phpscript,true);
  16. xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  17. xmlhttp.send("q="+str);
  18. }
  19.  
  20.  
  21. <select onchange = "load(this.value,'myDiv','proc.php')">
  22. <div id="myDiv"></div>
  23. <div id="myDiv1"></div>

y en el select dos

Código Javascript:
Ver original
  1. <select onchange = "load(this.value,'myDiv1','proc.php')"> //he puesto lo de phpscript por si tienes que consultar estos datos en otro php
  2. </select>

Saludos
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #13 (permalink)  
Antiguo 18/09/2014, 10:38
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Llmado de dos funciones similares en dos selects distintos

Gracias Alexis88 y Lynxcraft por toda su colaboración, muchachos.... son unos duros para la programación, mi programa funciona perfectamente ahora.... Completamente agradecido, peudo decir que es tema solucionado.
  #14 (permalink)  
Antiguo 29/09/2014, 08:16
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Llmado de dos funciones similares en dos selects distintos

Saludos de nuevo, se que ya marqué el tema como solucionado, pero no me parecio bien abrir un nuevo tema, asi que lo postearé aqui mismo..... Continúo trabajando sobre los scripts antes mencionados, y funcioanan a la perfeccción, lo que quiero ahora es saber si se puede hacer que el combo2 aparezca sin necesidad de darle clic al combo1, ya que no aparece hasta que no le de clic en el combo1... espero me haya dado a entender.... Mil gracias por la ayuda que logre recibir.

Etiquetas: ajax, distintos, formulario, funcion, funciones, js, php, select, selects, similares
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 01:17.