Refreh onclick non funzionante postato il 25/08/2018 20:14:18 nel forum programmazione, gdrcd, open source, hosting
Sera a tutti!
Stavo lavorando oggi su una modifica sostanziale al sistema di spesa punti esperienza di gdrcd per l'acquisto delle abilità,nel concreto cancellando quasi tutto il form pre-esistente per riscriverlo con un form ad input in php che si compone di un piccolo input type submit che una volta cliccato esegue una query mysqli aggiornando il database ed aggiungendo un punto alla abilità interessata.Tutto questo a patto che il check svolto da una if condition confermi che ci sono abbastanza punti esperienza per livellare la skill
FIn qui tutto bene:il form funziona e fila liscissimo, il problema sorge però dopo aver cliccato:infatti fino a che non si clicca una seconda volta sul submit la schermata, almeno in lato client, non si aggiorna il che è un problema, visto che in questa maniera si ha a disposizione un click extra che elude il check svolto dalla if e di cui i furbetti potrebbero approfittare.
Ho già provato ad agire usando una funzione javascript onclick sul submit(in particolare location.refresh(true),location.refresh(false), window.location.refresh(true) e location.refresh(false))ma non ha risolto il problema, visto che di fatto la pagina sembra ricaricare, ma solo in alcune sue parti(elenco presenti, messaggi etc etc) che ovviamente non includono il centro della pagina.
Qualcuno ha qualche consiglio?
Allego qui di seguito la parte interessata del codice,se mai potesse essere utile.Non me ne vogliate se è un tantinello spaghettoso u.u
Pagine → 1
25/08/2018 20:21:27
Discussione spostata in "GDRCD e Open Source"
25/08/2018 20:44:44
Ma se invece fai un location.href o location.reload?
25/08/2018 20:52:14 e modificato da cybershadow il 25/08/2018 20:55:34
25/08/2018 23:45:55
location.href = '/nuova-pagina.html';
Questo fa un redirect alla pagina che metti tu.
26/08/2018 02:25:49 e modificato da cybershadow il 26/08/2018 02:32:33
26/08/2018 06:54:55
Ora ti basta farti una select ad inizio pagina che si calcola il valore aggiornato, così quando farai il reload della pagina dovrebbe ritrovarsi il valore nuovo e non quello vecchio.
26/08/2018 10:12:33 e modificato da cybershadow il 26/08/2018 11:13:32
26/08/2018 18:17:41
Il tuo problema non è un bug del sistema o del browser, è proprio un errore nella logica di quello che hai scritto. Quindi usare dei trucchi come "location.reload" per aggirarlo non risolverà il problema.
L'errore principale è molto semplice: il codice che aggiorna il grado della skill è posizionato in fondo alla pagina.
Dato che sia la query SELECT sia la stampa del form avvengono *prima* della query di UPDATE è ovvio che al primo submit i dati mostrati dalla pagina siano errati, dato che vengono stampati prima di venire aggiornati. Il problema non è che la pagina non si aggiorna (anzi la pagina di aggiorna perfettamente) è che gli stai facendo stampare delle informazioni vecchie.
Sposta la query di update fuori dal for principale e all'inizio della pagina e vedrai che le informazioni stampate saranno giuste.
Aggiungo una cosa: il tuo if che controlla se il giocatore ha abbastanza exp da spendere puoi farlo al momento della stampa (come stai facendo), ma *DEVI* anche rifarlo prima della query di UPDATE: altrimenti un giocatore che vuole fregarti potrebbe sempre fare F5 e aggiungersi tutti i gradi che vuole.
26/08/2018 18:50:36
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
The Eyrie GdR: Halloween ad Harrenhal
piromee ha aperto un annuncio di ricerca: Momentum Incantatio ricerca Tester
Enlisted → Guida la tua squadra di soldati in combattimenti su larga scala, con fanteria, veicoli corazzati e aerei della IIa Guerra Mondiale!
Il gestore di Portus: Harry Potter Gioco di Ruolo ha risposto alla recensione di dreamboy
Black Sails Chronicles: ON - Casa delle Aste
RAID Shadow Legends: Summon Boost e Champion Chase
Storie di Esperia: Uno strappo nella notte
Hero Wars → Costruisci la tua squadra di eroi leggendari e domina il campo di battaglia! Strategia, tattica e potenza si scontrano in questo RPG ricco di azione!
Crystal Tokyo: Ingresso nella Via Magica
alexandros si è accreditato come gestore di Shinobi no Saisei - Naruto x Boruto GDR
Il gestore di Naruto x Boruto GDR - New Rebirth ha risposto alla recensione di jimcho
Il gestore di Naruto x Boruto GDR - New Rebirth ha risposto alla recensione di theduelist92
Seconda Era → Vaste terre coperte di ombre e misteri, dove ogni eroe scrive la storia del Mondo di Eidel. Seconda Era, Play By chat
War Thunder: Chieftain 900: Capo della Royal Ordnance
Il portale raggiunge i 17.200 giochi catalogati! Grazie a tutti!
Hero Wars: Anomalia dei Pets! 🐾
New Orleans: [On Game] Casting per i Cantanti!
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
AI e GdR - Abbiamo chiesto a due AI di presentarsi e spiegarci cosa possono fare per i giocatori di ruolo online. Scopriamo cosa ci rispondono!
Shannara - Recensione del GDR ambientato nel mondo creato da Terry Brooks
Guida RpG - Una guida per iniziare a giocare ai giochi di ruolo (RPG)
Raja Dunia - Intervista allo staff del play by chat fantasy Le Cronache di Raja Dunia!
Personaggi Badass - He-Man lo fa meglio! Costruiamo insieme un personaggio Badass!
Giochi Ultima - Lista dei giochi online ambientati nel mondo di Sosaria
The Hobbit - The Hobbit tra fiaba e mito: un viaggio verso la crescita