[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
World of Warship: Battaglie Asimmetriche nel 14.5
nereya ha aperto una nuova discussione: Nuova Frontiera
Sea of Conquest → Vivi un'avventura tra i mari! Dal cuore del Mare del Diavolo, un paradiso piratesco brulicante di magia, tesori e avventure, salperai verso l'ignoto!
New Wizarding World: Un nuovo Medimago
Sea of Conquest: Incontra Demona Rood! 🔥
anacronista ha recensito Storie di Agarthi
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
Nyx Insight - Project S.E.T.: Setting Refresh Time ✨
mhorras1988 ha recensito Fengard
prosperus ha recensito Exclusive Villa GdR
visanders ha aperto una nuova discussione: Aiuto ricerca Gioco
War Thunder → Aviazione, veicoli corazzati e flotte militari della seconda guerra mondiale. Parteciperai a tutte le principali battaglie!
kooei ha recensito Il Paiolo Magico
emiko ha recensito La Tana del Ladro
Entropia Universe: 💥 Evento Summer Mayhem 2025
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!
Statistiche Tecniche 2021 - Gdr-online.com pubblica i dati tecnici dei suoi visitatori per l'anno 2021. Spulcia i dati disponibili!
Epos Tolkeniano - Tesi sul tramonto dell'epos nell'universo mitologico di J.R.R. Tolkien
Autodomande per Gestori - Lista di domande che ogni aspirante Gestore dovrebbe porsi quando inizia a progettare un nuovo gdr
L'Io e l'Avatar - L'Io e l'Avatar - Proiezione e archetipo nei giochi di ruolo online
Regioni Italiane - La mappa di provenienza, per regione, dei giocatori di ruolo online italiani
Vampire Game - Bitefight vs. Monstersgame... scopriamo i due browser game sui vampiri più famosi!
Giocare ai GDR - Perché giocare ai GDR è utile? Scopriamolo in questo articolo!
Ricerca il tuo Staff - Ricerca, con il tool di gdr-online.com, lo staff per il tuo gioco di ruolo