Quizá con un ejemplo se entienda mejor lo que expliqué. Supongamos que en una tabla de la BD, tengo 3 campos; ID, NOMBRE y EDAD, entonces, lo que quiero hacer es listar todos los datos de dicha tabla y colocar un botón al final de cada fila generada, dicho botón llamará a una función JavaScript a la que le pasaré el ID de dicha fila o registro, en la función, solamente me limitaré a mostrar una alerta con el ID del registro, para comprobar que cada botón tiene el ID que le corresponde.
Código PHP:
Ver original<?php
//Realizo la conexión
$conexion = new mysqli("localhost", "root", "password", "bd_personas");
//Si se produce un error al intentar conectarme a la BD, lanzo un mensaje de error y finalizo el script
if ($conexion->connect_error)
exit ("ERROR: No se pudo realizar la conexión a la base de datos");
//Caso contrario, continuo con el script
//Realizo la consulta
$query = $conexion->query("SELECT * FROM tabla");
//Si se encuentran datos en la consulta
if ($query->num_rows) {
?>
<table border = 1>
<tr>
<th> ID </th>
<th> NOMBRE </th>
<th> EDAD </th>
<th> OPCIONES </th>
</tr>
<?php
//Creo un array asociativo con dichos datos y los itero para mostrarlos
while ($row = $query->fetch_array()) {
?>
<tr>
<td> <?php echo $row["ID"]; ?> </td>
<td> <?php echo $row["NOMBRE"]; ?> </td>
<td> <?php echo $row["EDAD"]; ?> </td>
<td>
<button onclick = "miFuncion('<?php echo $row["ID"]; ?>')">
OPCIÓN
</button>
</td>
</tr>
<?php
}
//Libero a la memoria de los resultado de la consulta
$query->free();
?>
</table>
<?php
}
else { //Si no se encuentran datos en la consulta
echo "No se encontraron datos en la consulta";
}
//Cierro la conexión
$conexion->close();
?>
Y en
miFuncion:
Código Javascript
:
Ver originalfunction miFuncion (id) {
alert (id);
}
Las impresiones cortas que hago con PHP dentro de HTML como
<?php echo $row["ID"]; ?>, también las puedes hacer así:
<?=$row["ID"]?>.
Analiza este ejemplo y adáptalo a tus necesidades, saludos.