[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 Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
I dati del generatore di rank sono stati aggiornati!
Saint or Sinner?: Le news del sabato sera..
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
Legacy of Magic: Al tempio di Raswa-Ti
ultima_profecia ha risposto alla discussione: Ùltima Profecía
Hogwarts Mystery - GdR: Accademia di Arti Magiche rasa al suolo {Edicola}
nexigeneration ha recensito Anima
Titan Revenge → Diventa il grande generale del regno e ottieni il favore degli dei per diventare una valchiria. Unisci le forze per salvaguardare l'umanità!
The Voyager: Central Train Station e un viaggio in prima classe
Lineage II: Evento di controllo incrociato
Enlisted: Nuovi miglioramenti grafici
desenlace ha aperto un annuncio di ricerca: Road to Hamartia RPG ricerca Giocatore
Lineage II → Entra in uno sconfinato mondo fantasy dominato da razze in contrasto tra loro. Scatena i tuoi poteri in uno dei Mmo più famosi al mondo!
Legacy of Magic: Un nuovo Drakul
Road to Hamartia: Regolamento 2.0: guida alle nuove Maestrie
Nuovo Play by Chat Harry Potter → Dissendium Draconis
Idle Saga → In Idle Saga abbraccia il tuo destino, sconfiggi l'oscurità e diventa la leggenda che Aethoria aspettava!
HHPGDR - Intervista alla gestrice del noto play by forum Hogwarts: Harry Potter Gioco di Ruolo!
Regno delle Due Sicilie - Recensione del GDR storico del Regno delle due Sicilie.
True Calling - Intervista al gestore del play by chat fantasy True Calling GdR
Sigil - Intervista al gestore di Sigil, la Città dei Portali il play by chat ambientato nel mondo nei Planescape!
Giochi Hentai - Lista completa dei giochi di ruolo online hentai. V.M. 18
Before Beyond the Lie - Intervista al gestore del GdR moderno Before Beyond the Lie.. avventurati nell'high school americana!