Foros del Web » Programando para Internet » Javascript »

error al pasar Objeto funcion javascript

Estas en el tema de error al pasar Objeto funcion javascript en el foro de Javascript en Foros del Web. Buenas tardes, hago una consulta a una BD y Ajax JQuery. Lo que quiero es pasar por parametros a una funcion Javascript. Tengo lo siguiente ...
  #1 (permalink)  
Antiguo 01/10/2014, 13:47
 
Fecha de Ingreso: junio-2012
Mensajes: 38
Antigüedad: 11 años, 11 meses
Puntos: 0
error al pasar Objeto funcion javascript

Buenas tardes, hago una consulta a una BD y Ajax JQuery.

Lo que quiero es pasar por parametros a una funcion Javascript.

Tengo lo siguiente

en el HTML tengo

Cita:
<table id="tDetalle">

</table>

<br><br>

<span id="idFecha"></span>
<span id="idNombre"></span>
Codigo JavaScript

Cita:
$.each(resul, function(key, val){

datos = {
fecha: val.fecha,
nombre: val.estacion
};

salida = '<tr onClick="abrirPopUp(datos)">';
salida += '<td>'+val.fecha+'</td>';
salida += '<td>'+val.nombre+'</td></tr>';
$('#tDetalle').append(salida);
});
y la funcion abrirPopUp tengo

Cita:
function abrirPopUp(datos)
{
$("#idFecha").html(datos.fecha);
$("#idNombre").html(datos.nombre);
}
el problema es que no importa en cual TR de la tabla de click, siempre me muestra los datos del ultimo TR me explico.

si en la lista de la consulta tengo

2014-10-01, jaime
2014-09-28, juan
2014-09-29, maria
2014-09-30, lina

y doy clic sobre jaime me muestra los valores lina

espero me puedan ayudar gracias.
  #2 (permalink)  
Antiguo 01/10/2014, 17:39
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 10 meses
Puntos: 44
Respuesta: error al pasar Objeto funcion javascript

El id que estás generando para cada tr es único? Si estás repitiendo el id, no va a devolverte el valor de cada registro ya que un id no puede repetirse. Hacé que el id sea único o usá class.

Saludos.
  #3 (permalink)  
Antiguo 02/10/2014, 07:21
 
Fecha de Ingreso: junio-2012
Mensajes: 38
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: error al pasar Objeto funcion javascript

Gracias por su respuesta, pero si se da cuenta los TR no tienen ID ni CLASS
  #4 (permalink)  
Antiguo 02/10/2014, 08:13
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 1 mes
Puntos: 461
Respuesta: error al pasar Objeto funcion javascript

es que al crear la función estas indicando que mande el objeto datos y al momento de dar click el ultimo valor es el que envía deberás modificar la función y pasar ya los datos a la misma

Código Javascript:
Ver original
  1. function abrirPopUp(fecha, nombre)
  2. {
  3. $("#idFecha").html(fecha);
  4. $("#idNombre").html(nombre);
  5. }
y en la salida que necesitas
Código Javascript:
Ver original
  1. salida = '<tr onClick="abrirPopUp('  + val.fecha  +  ', '  +  val.estacion + ')">';

prueba y nos comentas
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 02/10/2014, 10:32
 
Fecha de Ingreso: junio-2012
Mensajes: 38
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: error al pasar Objeto funcion javascript

Gracias de hecho así lo desarrolle, simplemente intente cambiar la forma de enviar los parámetros a una función.

Me parece mas interesante enviar un objeto miFuncion(objeto) que enviar todos los parametros de esta forma miFuncion(par1,par2,par3,par4)

no habrá forma de hacer esto.
  #6 (permalink)  
Antiguo 03/10/2014, 09:04
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: error al pasar Objeto funcion javascript

Prueba hacerlo sin el HTML concatenado y creando un nuevo elemento TR para poder manipularlo.

Código Javascript:
Ver original
  1. $.each(resul, function(key, objdatos) {
  2.  
  3.     var tr = $("<tr>")
  4.     .append('<td>' + objdatos.fecha + '</td>')
  5.     .append('<td>' + objdatos.nombre + '</td>')
  6.     .click(function(){
  7.         abrirPopUp(objdatos)
  8.     });
  9.     $('#tDetalle').append(tr)
  10.    
  11. });
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */

Etiquetas: ajax, funcion, html, jquery, objeto, valor
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 22:21.