No sé cuánto código se necesita realmente, ¡así que házmelo saber!
Tengo este proyecto que estoy desarrollando y estoy haciendo el administrador final en PHP. Utiliza SQL y el administrador puede actualizar, eliminar y promover a los usuarios normales del administrador (lo que no puedo hacer).
sql
CREATE TABLE User ( UserID int NOT NULL, Username varchar(50) NOT NULL, Email varchar(255) NOT NULL, Password varchar(255) NOT NULL, Image varchar(255) NOT NULL, Type varchar(255) NOT NULL )ENGINE=InnoDB DEFAULT CHARSET=latin1; El type de campo es administrador/usuario. Lo que quiero hacer es hacer clic en un botón y cambiar el valor de user a admin .
Estaba pensando en usar la función onclick JS, pero no tengo idea de cómo se puede lograr. Como sigue:
<a onclick='.$row["Tipo"].'= admin" class="btn btn-promote">Promote</a>Gracias por la lectura, cualquier ayuda es bienvenida!
Para ayudarlo en sus esfuerzos dado que "don't have the slightest clue on how JS works" , preparé una demostración rápida y simple de cómo podría usar un hipervínculo (no un botón según la pregunta, aunque se puede usar un enfoque similar) para botones! ) y los atributos del dataset de datos pueden combinarse para alternar entre 2 estados. Ese cambio entre estados le permite elegir entre los roles de administrador/usuario indicados cuando se implementa correctamente con otra lógica. Como no hay un formulario HTML ni un método deseado, puede usarlo con un formulario normal (como se muestra) o con Ajax (no se muestra)
La demostración solo cambia el valor de un elemento de formulario y también el texto dentro del hipervínculo
document.querySelector('a.btntgl').addEventListener('click',function(e){ let role=document.forms.adduser.role; this.dataset.tmp=this.textContent; this.textContent=this.dataset.alt; role.value=this.dataset.alt; this.dataset.alt=this.dataset.tmp; this.removeAttribute('data-tmp'); }); .btntgl{ text-transform:capitalize } <form name='adduser' method='post'> <!-- loads of other fields --> <input type='text' name='role' value='admin' /><!-- should be hidden maybe? --> <input type='submit' /> </form> <a class='btntgl' href='#' data-alt='user'>admin</a> $(document).on('click', '#btntgl', function(e){ e.preventDefault(); let typeValue = $(this).date('id'); $.ajax({ method: "POST", url: "update.php", data: {type:typeValue}, success: function (msg) { if(msg === "ok") { alert("success"); } else { alert("error"); } } }); }); <a id="btntgl" data-id="<?php echo $row['Tipo'];?>" class="btn btn-promote">Promote</a>el update.php contendrá su declaración de actualización para actualizar la tabla.