El evento
submit
es propio de los formularios, no de los botones u otros elementos. ¿Qué es lo que haces cuando pulsas un botón? La respuesta es obvia: Un clic (traducción de la palabra anglosajona
click). Entonces, lo que debes de aplicar es el evento
onclick
. Un pequeño ejemplo puede clarificar las cosas:
Código Javascript
:
Ver originalvar boton = document.getElementById("ejemplo"),
idUsuario = document.getElementById("id_usuario").value;
boton.addEventListener("click", function(){
var estado = this.getAttribute("data-estado");
if (estado == "no"){
this.innerText = "Ya no me gusta";
this.setAttribute("data-estado", "si");
estado = "si";
}
else{
this.innerText = "Me Gusta";
this.setAttribute("data-estado", "no");
estado = "no";
}
$.ajax({
url: "cambiar.php",
type: "POST",
data: {
id: idUsuario,
valor: estado
}
});
}, false);
Y en el archivo
cambiar.php:
Cuando pulses el botón, tomarás el valor del pseudo-atributo
data-estado
y lo evalúas, si es igual a "no", es decir, si todavía no se ha pulsado dicho botón, cambias el texto que contiene a "Ya no me gusta", el estado a "si" y haces lo contrario cuando el valor de
data-estado
sea distinto. Luego, mediante Ajax, envías el valor hacia el archivo PHP que actualizará el estado en la base de datos, enviándole el estado del botón como el identificador del usuario en cuestión para que solo a él le afecte el cambio. El identificador del usuario lo tomo de un elemento en el documento que contenga dicho dato, si no lo tienes, debes crearlo y asignarle el respectivo valor.
En el archivo PHP, desinfectas los datos de posible código malicioso y realizas la actualización del estado.
Un ejemplo sin base de datos:
Saludos