Tengo un código en PHP que imprime elementos HTML basados en la información que obtuvimos en la base de datos, por lo que si tenemos por ejemplo 8 productos, el código imprimirá 8 divs con los siguientes elementos dentro
aquí hay un código que hice
<?php while($row=$consulta->fetch()) { ?> <img src="<?php echo $row["Imagen"];?>"style="width:12rem;height:12rem;" alt="Scotter" > <br> <div> <h4 id="<?php echo $row["ID_Scooter"]; ?>"> <?php echo $row["ID_Scooter"]; ?> </h4> <br> <?php echo $row["Nombre"]; ?> <br> <?php echo $row["Descripcion"]; ?> <br> <?php ?> <button onclick="abrir()">Alquilar</button> <br> </div> <?php } ?>JavaScript
function abrir(){ var dialog = document.getElementById('favDialog'); dialog.show(); var id=document.getElementById("heres is where im supposed to get the id of the id i clicked"); alert("div id is="+id); }php asing ID por ejemplo (3,4,5,6,7) pero cuando hago clic en el botón dentro del div con id = 5, imprime el id = 3 sin importar en qué botón haga clic
tenga en cuenta que ha configurado onclick="abrir()" sin pasar ningún dato específico.
tienes 2 formas de hacerlo:
1- pasando datos con php:
HTML:
abrir(<?php echo $row["ID_Scooter"]; ?>)y úsalo en tu js:
function abir(id){ let id_scooter = id; ... }2- pasando el elemento clicado con js:
HTML:
onclick="abrir(this)"JS:
function abir(el){ let id_scooter = (el).attr(id); ... }