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 originalfunction cambiarEstado(accion, codigo)
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "actualizador.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status==200)
{
if(xmlhttp.responseText == "ok")
{
alert("El cambio se realizo correctamente");
}
else
{
alert(xmlhttp.responseText);
}
}
}
xmlhttp.send("accion="+accion+"&codigo="+codigo);
}
function accionar_pendiente()
{
var codigo = this.parentNode.parentNode.dataset.codigo;
cambiarEstado("pendiente", codigo);
}
function accionar_confirmado()
{
var codigo = this.parentNode.parentNode.dataset.codigo;
cambiarEstado("confirmado", codigo);
}
function accionar_rechazado()
{
var codigo = this.parentNode.parentNode.dataset.codigo;
cambiarEstado("rechazado", codigo);
}
Y luego en tu archivo actualizador.php
Código PHP:
Ver original<?php
require '../ModeloControlador/conexion.php';
switch($_POST["accion"])
{
case "pendiente" :
case "confirmado" :
case "rechazado" :
$con->query("UPDATE productos SET estado = '$_POST[accion]' WHERE codigo = ".$con->quote($_POST["codigo"])." LIMIT 1;");
if($con->affected_rows)
$status = "ok";
else
$status = "No se actualizo ningun producto.";
break;
default :
$status = "Estado invalido";
break;
}
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.