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 1Pulsante 12: Un pulsante che imposta la variabile a 2Pulsante 20: Un pulsante che imposta la variabile a 0Nel codice in php c'è un if:SE il valore è 0: Pulsante 01.SE il valore è 1: Pulsante 12SE il valore è 2: Pulsante 20Aggiornando 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 tabellaSET 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 XDGrazie 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
Articoli, Interviste e altre Risorse!