[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
World of Warship: Nuova mappa: Isole al tramonto
I dati del generatore di rank sono stati aggiornati!
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!
Piume Nere: 🎅🎁📜Racconti Popolari e Cibo 🍞🎁🎅
New York Heroes Reborn - Avengers Academy: Integrazione png con ia e sala caos
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!
Roma I Triumviri: Saturnalia su RiT dal 17 al 21 dicembre
RAID Shadow Legends: Ottieni un feroce Campione Leggendario: Predator!
Tibia: Aggiornamento Invernale 2025 ❄️
Tibia → Tibia è un MMORPG gratuito online dal 1997 e con migliaia di utenti connessi! Riscopri il divertimento old style!
Feudera: UPDATE #0.49.5.1 - Versioni mobile
Il gestore di Unwritten Destinies GDR ha risposto alla recensione di aver
crossfire ha recensito Unwritten Destinies GDR
Unwritten Destinies GDR: Loading... ❄️
New Orleans → La Città dai Mille Volti: Crime, Feste, Mistero, Voodoo, Natura Incontaminata, Fama, Grattacieli, Luci Splendenti e Ombre Profonde.
