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

Utilizar misma función en distintos divs

Estas en el tema de Utilizar misma función en distintos divs en el foro de Frameworks JS en Foros del Web. Al escribir la fecha, se llama a la función de AJAX MostrarConsulta que se carga en el div resultado: Código: <td> <input type="text" onchange="MostrarConsulta(this);" name="fecha" ...
  #1 (permalink)  
Antiguo 30/07/2009, 02:38
 
Fecha de Ingreso: julio-2009
Ubicación: En PHPlandia, AJAXia y JavaScriptín
Mensajes: 34
Antigüedad: 15 años, 5 meses
Puntos: 0
Utilizar misma función en distintos divs

Al escribir la fecha, se llama a la función de AJAX MostrarConsulta que se carga en el div resultado:
Código:
<td>
   <input type="text" onchange="MostrarConsulta(this);" name="fecha" />
   <div id="resultado"></div>  
(...)
Código:
function MostrarConsulta(objeto)
{
	var fecha = objeto.value;
	divResultado = document.getElementById('resultado');
	ajax=objetoAjax();
	ajax.open("POST", 'consulta.php');
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			divResultado.innerHTML = ajax.responseText
		}
	}
	ajax.setRequestHeader("Content-Type", 
        "application/x-www-form-urlencoded");
	ajax.send('f='+ escape(fecha)); 
}
consulta.php produce un select multiple con los datos.

Todo funciona OK, pero si quiero poner más td con la misma estructura evidentemente no funciona, porque todos los divs tienen el mismo nombre, no creo que tenga que crear X MostrarConsulta para ir cambiando el nombre en cada uno de ellos....

Además ocurre otra cosa, el select multiple que se genera a partir de consulta.php tiene un nombre determinado, tampoco iría bien el tener todos los select con el mismo nombre....

¿Alguna idea? No sé como arreglarlo...
  #2 (permalink)  
Antiguo 30/07/2009, 07:56
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Utilizar misma función en distintos divs

Hola

Se me ocurre que podrías pasarle la id del div como argumente. Algo como esto

Cita:
<td>
<input type="text" onchange="MostrarConsulta(this,'resultado');" name="fecha" />
<div id="resultado"></div>
(...)
Cita:
function MostrarConsulta(objeto,contenedor)
{
var fecha = objeto.value;
divResultado = document.getElementById(contenedor);
ajax=objetoAjax();
...
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 19:51.