Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

442
Vistas
Quiero seleccionar una fila específica cuando hago clic en el botón usando php/mysql

Quiero seleccionar una fila específica cuando hago clic en el botón eliminar o editar en mi tabla porque cada fila en mi tabla tiene 2 botones, uno para eliminar y otro para editar, pero elimina la fila que tiene la última identificación, no la fila que quiero. Quiero que cuando haga clic en el botón en la misma fila, la fila se elimine. busque la imagen de abajo para entender lo que quiero decir

cuadro para la mesa

Estoy usando este código para crear la tabla.

 while($row = mysqli_fetch_assoc($result)) { echo ' <tr class="w3-hover-orange"> <td> <a class="links" href="topic.php?id=' . $row['topic_id'] . '">' . $row['topic_subject'] . '</a> </td> <td> ' . date('dm-Y', strtotime($row['topic_date'])) . ' </td> <td> </td> <td> <a href="edit_topic.php" name="topicEdit" id = "topicEdit" class = "w3-button tableButtons" >Edit</a> <button href="#" name="topicDelete" type="button" id="topicDelete" data-toggle="modal" data-target="#myModal" class ="w3-button tableButtons">Delete</button> </td> </tr>'; $_SESSION['topic_id_number'] = $row['topic_id']; $_SESSION['topciSubject'] = $row['topic_subject']; } echo'</table></form></div>';

Y debajo el código para el tema de eliminación

 if(isset($_POST['topicDelete'])){ $delete = $_SESSION['topic_id_number']; $query = "DELETE FROM topics WHERE topic_id =".$delete; $result = mysqli_query($con,$query); header ("location: awareness-projects.php"); }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Creo que $row['topic_id'] identifica la identificación contra la cual se realizará la eliminación.

Realice los siguientes cambios:

 <button href="#" name="topicDelete" type="button" id="topicDelete" data-toggle="modal" data-target="#myModal" class ="w3-button tableButtons">Delete</button>

cámbielo a un anchor y en su href pase este $row['topic_id'] y obtenga su valor en la página de eliminación como:

 <a href="xyz.php?id='".$row['topic_id'] ."'"
over 4 years ago · Santiago Trujillo Denunciar

0

Como las entradas de la tabla se generan dinámicamente a través del ciclo, siempre tomará la última identificación cuando finalice el ciclo porque el nombre de la sesión que usa es el mismo para cada entrada del ciclo while. por lo que se sobrescribirá cada vez y la última identificación estará en la variable de sesión. Hay varias opciones que puedes probar

  1. Asigne un nombre a la variable de sesión para cada ciclo de tal manera que sea diferente para cada ciclo
  2. el segundo es almacenar la identificación del registro actual en el atributo de datos de la etiqueta de anclaje, por lo que debe cambiar la etiqueta del botón a la etiqueta de anclaje, luego siga lo siguiente:

<a href="#" name="topicDelete" type="button" id="topicDelete" data-toggle="modal" data-target="#myModal" class ="w3-button tableButtons" data-cid="$row['topic_id']">Delete</a>

luego, cuando haga clic en el enlace, obtenga el valor del enlace actual usando el siguiente código de jquery y guárdelo en el campo oculto del modal

 $(".tableButtons").click(function(){ var id=$(this).data("cid"); alert(id);//check the id if you are getting current id or not $("#temp").attr("value",id);//this is the hidden field in modal which id is temp and name it to whatever name you use to get the value of it in your delete code });

cada vez que envíe el formulario, el valor de este campo oculto se establecerá con el valor de la identificación y se enviará si está utilizando el método de acción del formulario. luego puede recuperar su valor como un cuadro de texto normal como ya lo ha hecho muchas veces, eso espero. Mis mejores deseos. Personalmente estoy usando este código para mi trabajo y funciona completamente bien;)

over 4 years ago · Santiago Trujillo Denunciar

0

Envíe topic_id con cadena de consulta de la siguiente manera

 <a href="xyz.php?id='".$row['topic_id']."'" name="topicDelete" type="button" id="topicDelete" data-toggle="modal" data-target="#myModal" class ="w3-button tableButtons">Delete</a>

Eliminar código -

 if(isset($_POST['topicDelete'])){ $delete = $_GET['id']; $query = "DELETE FROM topics WHERE topic_id =".$delete; $result = mysqli_query($con,$query); header ("location: awareness-projects.php"); }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda