Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/10/2014, 18:45
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 7 meses
Puntos: 320
Respuesta: Ideas con tabla generada PHP por una consulta a base de datos.

Lo que debes hacer es usar ajax, en la misma w3c esta su especificacion.

Siguiendo con el ejemplo dado, podrias hacer algo asi:
Código Javascript:
Ver original
  1. function cambiarEstado(accion, codigo)
  2. {
  3.     var xmlhttp = new XMLHttpRequest();
  4.     xmlhttp.open("POST", "actualizador.php", true);
  5.     xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  6.     xmlhttp.onreadystatechange = function()
  7.     {
  8.         if (xmlhttp.readyState == 4 && xmlhttp.status==200)
  9.         {
  10.             if(xmlhttp.responseText == "ok")
  11.             {
  12.                 alert("El cambio se realizo correctamente");
  13.             }
  14.             else
  15.             {
  16.                 alert(xmlhttp.responseText);
  17.             }
  18.         }
  19.     }
  20.     xmlhttp.send("accion="+accion+"&codigo="+codigo);
  21. }
  22.  
  23. function accionar_pendiente()
  24. {
  25.     var codigo = this.parentNode.parentNode.dataset.codigo;
  26.     cambiarEstado("pendiente", codigo);
  27. }
  28.    
  29. function accionar_confirmado()
  30. {
  31.     var codigo = this.parentNode.parentNode.dataset.codigo;
  32.     cambiarEstado("confirmado", codigo);
  33. }
  34.    
  35. function accionar_rechazado()
  36. {
  37.     var codigo = this.parentNode.parentNode.dataset.codigo;
  38.     cambiarEstado("rechazado", codigo);
  39. }

Y luego en tu archivo actualizador.php
Código PHP:
Ver original
  1. <?php  
  2.     require '../ModeloControlador/conexion.php';
  3.     switch($_POST["accion"])
  4.     {
  5.         case "pendiente" :
  6.         case "confirmado" :
  7.         case "rechazado" :
  8.             $con->query("UPDATE productos SET estado = '$_POST[accion]' WHERE codigo = ".$con->quote($_POST["codigo"])." LIMIT 1;");
  9.             if($con->affected_rows)
  10.                 $status = "ok";
  11.             else
  12.                 $status = "No se actualizo ningun producto.";          
  13.         break;
  14.         default :
  15.             $status = "Estado invalido";
  16.         break;
  17.     }        
  18.    
  19.     die($status);

Si bien el codigo podria optimizarse un poco no se que es lo que contiene el objeto $con por ejemplo, te servira a modo de guia como para orientarte pero no lo tomes como la unica solucion.

Saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios