entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Como pasar datos variables de una BD a una ventana Modal

Buenos días, no tengo mucha experiencia con JavaScript o Ajax por lo tanto es un poco complicado lo poco que he encontrado en Internet. Mi problema es el siguiente: tengo una BD de productos, ya estoy mostrando esos productos en pantalla, la idea es que quiero que al dar clic sobre cada producto se abra una ventana modal para que no se vaya a otra página, ya desarrolle todo, pero no se porque siempre me pasa el mismo ID a la ventana Modal, coloco parte del código. Mil gracias por su ayuda. (En negrila coloco el código clave y donde creería que es la falla)

desde este archivo que se llama productos.php hago el llamado a la modal:

echo("<div align='center'>**<a href='javascript:void()' onclick='mostrareldiv();' data-idusuario=".$row["Codigo"]." id='miventana' **style='text-decoration:none;'><img src='imagenes/boton2MINI.jpg' width='124' height='17' ></a></div>");
echo(" <div id='fade' class='overlay' > 
<div id='light' class='modal'> 
 <div id='msgcomun'> 
   <span class= 'msgdoscomun'>Producto</span> 
   <a class='closemodal' href = 'javascript:void()' onclick = 'ocultareldiv() '> X </a> 
 </div> 
<div id='respuesta'></div> 
</div> 
</div> "); 

Cuando doy clic en la imagen se abre la ventana Modal sin problema y me lleva un ID, pero siempre el mismo (si estoy recorriendo la BD, hice la prueba sin Modal y me envía a otra página el ID que es..)

Código del archivo ventanamodal.js

function mostrareldiv() { 

var httr = new XMLHttpRequest(); 
var url = "ampliacion.php"; 

document.getElementById('light').style.display='block'; 
document.getElementById('fade').style.display='block'; 
**var id = document.getElementById("miventana").dataset.idusuario; **
alert(id);

var variables = "idusuario="+id; 
httr.open("POST",url,true); 
httr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
httr.onreadystatechange = function() 
{ 
if(httr.readyState == 4 && httr.status == 200) 
{ 
var respuesta = httr.responseText; 
document.getElementById("respuesta").innerHTML = respuesta; 

} 
} 

httr.send(variables); 

document.getElementById("respuesta").innerHTML = "procesando"; 
} 

function ocultareldiv() { 
document.getElementById('light').style.display='none'; 
document.getElementById('fade').style.display='none'; 
} 

en ampliacion.php

$idusuario = $_POST['idusuario']; 
echo $retVal = (!isset($idusuario) ) ? "No se ha recibido dato ": " su id es ". $idusuario ; 

Donde me muestra siempre el mismo ID.

Mil gracias pro su ayuda, espero me puedan ayudar con esto.

Saludos

1 Respuesta

4votos

hawkins30 Puntos300

Ya lo pude resolver, mil gracias !!
Estaba estancado en algo muy tonto.
Simplemente pase la variable como argumento de la función de JavaScript así:

echo("<div align='center'>**<a href='javascript:void()' onclick='mostrareldiv(".$row["Codigo"].");' data-idusuario=".$row["Codigo"]." id='miventana' **style='text-decoration:none;'><img src='imagenes/boton2MINI.jpg' width='124' height='17' ></a></div>");

Mil gracias.

2votos

x4mp73r comentado

¡Gracias por publicar la respuesta @hawkins30 !

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta