Cambiare una variabile con un pulsante
Cambiare una variabile con un pulsante postato il 22/02/2017 19:26:24 nel forum programmazione, open source e hosting
Sarà una domanda banale ma... non sono (ammetto) mai riuscito a scrivere un codice ben ottimizzato che faccia cambiare una variabile "in rotazione".
Nel senso: premendo il pulsante vorrei che in DB un valore venisse "aggiornato" da 0 a 1, da 1 a 2, da 2 a 0, ecc...
Fino ad ora ho sempre usato un "escamotage" molto poco elegante, ovvero:
Pulsante 01: Un pulsante che imposta la variabile a 1
Pulsante 12: Un pulsante che imposta la variabile a 2
Pulsante 20: Un pulsante che imposta la variabile a 0
Nel codice in php c'è un if:
SE il valore è 0: Pulsante 01.
SE il valore è 1: Pulsante 12
SE il valore è 2: Pulsante 20
Aggiornando la pagina "on submit" il pulsante "cambia" col cambiare del valore e... funziona, però come dicevo, è poco elegante e poco pratico... per non parlare che sono decine di righe di codice e magari si potrebbe fare meglio ecco...
Qualche idea?
Grazie
Pagine → 1
22/02/2017 20:17:53 e modificato da leoblacksoul il 22/02/2017 20:19:40
Una cosa così
<?php
$valore = /* Query al DB per trovare il valore */
if(!empty($_POST['rotate_value'])){
$valore = ($valore+1)%3;
/* Query per scrivere il valore sul DB */
}
?>
<form method="post">
<input type="submit" name="rotate_value" value="Aggiorna Valore" />
</form>
Non c'è nessun bisogno di avere pulsanti diversi...è sufficiente un tasto solo che faccia partire l'operazione di rotazione.
La rotazione spesso è facile da implementare usando l'operatore modulo (resto della divisione intera)
22/02/2017 20:24:46 e modificato da dyrr il 22/02/2017 20:25:07
Se vuoi essere sicuro che i valori siano 0 1 2 e che nessuno tenti di far eil furbo con la variabile inviata puoi anche usare una query così:
UPDATE tabella
SET Valore = CASE WHEN Valore = 2 THEN 1
WHEN Valore = 1 THEN 0
WHEN Valore = 0 THEN 2
ELSE Valore END
WHERE ....
22/02/2017 21:44:44
Hehe sapevo che ci doveva essere un modo migliore XD
Grazie leoblacksoul e dyrr.
Quando avrò un po' di tempo libero da dedicare a ottimizzare il codice, dovrò andarmi a spulciare le varie pagine php e probabilmente tornerò a rompere le scatole per come implementare tutto...
Cmq grazie :)
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Foundation Galactic Frontier ↗
Seconda Era ↗
Raja Dunia ↗