[GDRCD5] Form assegnazione esperienza a più utenti postato il 26/09/2011 23:10:36 nel forum programmazione, gdrcd, open source, hosting
Ok, la domanda è stupida e me ne rendo conto... ma non riesco a raccapezzarmi >.<
Allora, la questione è questa: praticamente vorrei creare un form che permetta l'assegnazione di punti esperienza a più utenti, facendo in modo che l'unico modo per assegnare px non sia quello di andare in scheda per scheda. Non sapendo materialmente come fare, però, ho provato a fare questa cosa qui, prendendo ad esempio il sistema di invio messaggi, per la variabile iniziale
Pagine → 1 2
26/09/2011 23:59:10
27/09/2011 00:00:14 e modificato da leoblacksoul il 27/09/2011 00:05:51
eh, se vuoi fare una cosa limitata la logica è quella. Cioè gli metti fissi, chessò, 5 posti per dare esperienza a 5 utenti (come avevi pensato tu, basta copiare 5 volte i campi). Ovviamente la chiave sta nel dare nomi diversi a tutti gli elementi, altrimenti si sovrascrvono a vicenda quando arrivano su PHP (ecco perchè si setta solo l'ultimo).
Volendolo fare un po' più avanzato, ci metti un pochino di javascript; parti da un solo elemento per assegnare exp, e poi cliccando un bottone aggiungi altri campi uguali (ma con id e name diversi!) al volo, usando javascript.
Ecco un esempio, l'avevo usato come guida la prima volta che avevo provato ad aggiungere dinamicamente elementi con javascript. Se usi Jquery è infinitamente più semplice, questo esempio è javascript puro: http://www.webdeveloper.com/forum/showthread.php?t=71813 ↗
EDIT: Per gestire comodamente la cosa su PHP quando ti arrivano i dati, basta che dai dei nomi di questo tipo ai tuoi campi:
<input name="exp[1][pg]" />
<input name"exp[1][px]" />
<input name="exp[1][causale]"/>
ovviamente facendo andare avanti il numero per ogni gruppo di campi. Così su PHP ti ritroverai con la variabile $_POST['exp'] che sarà un array, che contiene in ogni suo elemento un altro array; il quale avrà gli elementi 'pg', 'px' e 'causale' che contengono i tuoi dati
27/09/2011 00:23:47
la soluzione tramite JS sembra interessante... appena fatta quella "brutale" tramite php la provo u.u
ho provato a cambiare i nomi come suggerito, ma... non mi aggiorna l'esperienza ç_ç" ho anche provato a cambiare la query iniziale come suggerito da nicodem, ma la questione non cambia. Forse che il problema sia in come è scritto il "submit"?
27/09/2011 00:38:51
provo a farti un esempio di codice, nella versione base senza JS.
27/09/2011 12:59:28
grazie mille a tutti! ho risolto! *_*
ho messo la prima parte del codice così:
27/09/2011 13:23:19 e modificato da vino_veritas il 27/09/2011 13:24:33
$_SERVER['PHP_SELF'] è semplicemente l'indirizzo dello script attualmente in esecuzione. Tu invece hai bisogno della stringa di query (per intenderci, quella a partire dal punto interrogativo in poi nell'action); leo intendeva che dovevi utilizzare nell'action:
27/09/2011 14:26:42
27/09/2011 15:27:37
Sviste notturne v.v
Stai attenta che gli utenti inseriti nel form esistano. Il tuo codice non tiene conto di eventuali errori, se qualcuno inserisce un utente inesistente viene comunque registrata l'assegnazione nei log.
La parte che hai messo in grassetto non ci stava perchè stai cercando di mettere un else dopo un foreach.
$_POST['nome'] cos'è? Nel nostro form non c'è nessun campo chiamato così. Per avvisare ogni utente che gli è stata aggiunta esperienza devi fare quel controllo dentro al foreach, con la condizione if($_SESSION['login']!=$item['pg']). Possibilmente mettendo il mysql_query dentro all'if, non fuori.
27/09/2011 17:33:35 e modificato da irenes il 27/09/2011 17:40:56
27/09/2011 19:25:51 e modificato da leoblacksoul il 27/09/2011 19:28:01
Ovviamente XD
Questo bug che hai trovato è un conseguenza diretta dell'assenza del controllo degli errori che abbiamo menzionato.
Fare il controllo è molto semplice, basta fare una query per controllare che il pg esista prima di tutto. Per evitare il caos, te lo scrivo in una funzione a parte, anche se gdrcd fa scarso uso (nullo?) di funzioni all'interno dei suoi file inclusi.
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione + Segui Discussione Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Il gestore di Age of Crystals ha risposto alla recensione di misteh
New World GDR: Nuova Gestione e prossimi passi
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
Il gestore di New World GDR ha risposto alla recensione di karsa
Cleveland City: Nuove Guide nello Staff!
eriophora ha aperto un annuncio di ricerca: La Cour des Miracles ricerca Tester
New Orleans: Nuovo Video Land!
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
losnodo ha risposto alla discussione: Programmatore Offresi!
joeilcondor si è accreditato come gestore di Betsu No Tamashi
Portus: Harry Potter Gioco di Ruolo: DCAO: il vero nemico non è la magia oscura
Apocalypse Requiem: Detroit: Release Nuova Versione
War Thunder → Aviazione, veicoli corazzati e flotte militari della seconda guerra mondiale. Parteciperai a tutte le principali battaglie!
Another Year Of Disaster: A Whole Year of Disaster! 🎉
exv_staff ha aperto un annuncio di ricerca: Exclusive Villa GdR ricerca Giocatore
World of Tanks: Aggiornamento 2.0.1: Linee ridisegnate
Il genere Battaglie Galattiche raggiunge i 400 giochi catalogati!
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, inizia l'avventura!
Giochi Streghe - Lista completa dei giochi di ruolo online ambientati nel mondo di Streghe
Il Futuro dei Gdr - Quale futuro per i gdr online? Dati alla mano lo scopriamo assieme..
Morti Assurde - 50 modi assurdi di morire in un Gioco di Ruolo. Raccontaci le tue morti assurde!
Poteri delle Pietre - Le proprietà e i poteri delle Pietre!
Deadly Sins - Intervista alla gestione del play by chat moderno-noir Deadly Sins
Gli Utenti di Gdr-Online - Articolo semiserio sugli utenti che si possono trovare su GDR-online suddivisi per tipologia!
Hogwarts Ends - Intervista alle gestrici del play by forum potteriano Hogwarts Ends!