Tag relative
Tag relative postato il 12/04/2023 15:57:10 nel forum programmazione, open source e hosting e modificato da angel1989 il 12/04/2023 19:27:03
Ho aggiunto nelle chat di gdrcd un selettore al form di invio azione in cui i giocatori possono selezionare una tag da un elenco in modo tale che veda le azioni con quello stesso tag in evidenza tramite una $_SESSION[''].
Mi è riuscito.
Il problema è che non riesco a far aggiornare la chat in automatico. L'azione si carica in db e in chat, ma le azioni in evidenza sono quelle della sessione precedente se la cambio in corsa.
Ho provato ad inserire un gdrcd_redirect() in ref_header, ma nulla. L'azione viene caricata sul db, ma non si aggiorna. Per vedere l'azione devo aggiornare manualmente. Ho provato un po' di tutto ><
gdrcd_redirect('main.php?dir='.gdrcd_filter('num', $_SESSION['luogo']));
gdrcd_redirect('../pages/frame_chat.inc.php');
gdrcd_redirect('../pages/frame_chat.inc.php?dir='.$_SESSION['luogo']);
gdrcd_redirect('./pages/frame_chat.inc.php');
gdrcd_redirect('/pages/frame_chat.inc.php');
e altro ancora. Mi dà sempre errore 404. Qualcuno sa dirmi che indirizzo dovrei inserire o se non c'è modo di aggiornarla in questa maniera e si può fare in altro modo?
Pagine → 1
13/04/2023 09:27:27
Ciao!
ti confesso che ho capito solo la prima parte.
Hai inserito una tendina che selezione un "TAG" che dovrebbe far evidenziare tutte le stringhe di chat con lo stesso tag.
Poi vorresti inserirlo in una variabile $_SESSION['il_tag']
Perché lo vorresti sempre "disponibile"
ora, per poterti dare risposta, ci sono almeno due file dove controllare.
ref_header.inc.php e , frame_chat.inc.php che sono quelli che hai sicuramente dovuto modificare.
Le problematiche potrebbero essere varie.
quella che mi viene in mente è la gestione appunto del refresh della chat.
Quando invii il tag tramite il form, sicuramente lo inserisci bene , ma al refresh della pagina, invii sempre lo stesso tag? hai inserito qualche blocco di controllo per evitare di sovrascrivere con un tag vuoto?
Insomma, servono maggiori informazioni!
Claudio
13/04/2023 17:24:30 e modificato da angel1989 il 13/04/2023 17:30:21
Il mio problema non credo sia relativo alle tag, però posso dirvi che ho fatto senza problemi.
Prima di tutto ho aggiunto due campi nel db. Uno nella tabella delle chat in cui ad ogni azione inviata è assegnata una tag, poi una in mappe dove ho inserito l'elenco di tag per ogni chat presente in land.
Ho inserito un $_SESSION['tags'] nel login
Quindi nel form di invio delle azioni in frame_chat.inc.php ho aggiunto il selettore
<?php $e = explode(",",$info['tags']); ?>
<div class="casella_chat_tag">
<span class="casella_info"><?php echo 'Pin'; ?></span>
<select name="tags" id="pin">
<?php foreach($e as $var){ ?>
<option value="<?php echo gdrcd_filter('out',$var);?>" <?php if($var == $_SESSION['tags']) { echo 'SELECTED'; } ?> >
<?php echo $var; ?>
</option>
<?php } ?>
</select>
</div>
Quindi in ref_header.inc.php nella sezione di caricamento dell'azione di tipo P ho inserito:
if($_SESSION['tags']!=$_POST['tags']){
$_SESSION['tags']=$_POST['tags'];
}
per modificare la sessione della tag del pg nel caso la cambi rispetto alla voce standard che permette di vedere ogni azione normalmente. Oltre ovviamente al caricamento della tag in db con il resto degli elementi.
Poi nelle righe di caricamento dell'azione in chat:
if($_SESSION['tags']!='Generico' && $_SESSION['tags']!=$row['tag']){
$opacity=0.2;
} else {
$opacity=1;
}
$add_chat.= '<div class="chat_row_'.$row['tipo'].'" style="opacity: '.$opacity.';">';
che rende opache le azioni che non hanno la stessa tag usata dal pg.
Tutto questo funziona.
Il mio problema è al cambio di tag.
Mettiamo di avere le voci: Generico, Tavolo e Fornelli in uan ipotetica chat Cucina.
L'utente inizia con la tag "Generico". Poi ad un certo punto si sposta nella tag "Tavolo"
scrive la sua azione, seleziona tavolo ed invia.
A quel punto le vecchie azioni restano visibili pur essendo con tag "Genedico", perché la pagina non si aggiorna. L'azione viene caricata e le azioni successive con tag "Generico" saranno opacizzate, mentre vedrà con opacity 1 solo quelle con "Tavolo" ma quelle precedenti resteranno visibili sino a che non aggiornerà manualmente la chat.
Io vorrei trovare un modo per aggiornare la pagina all'invio di un'azione con tag diversa rispetto alle precedentemente usate.
Per questo ho provato con:
if($_SESSION['tags']!=$_POST['tags']){
$_SESSION['tags']=$_POST['tags'];
gdrcd_redirect('main.php?dir='.gdrcd_filter('num', $_SESSION['luogo']));
}
Ma non va e volevo capire se c'è un modo per farlo. Perché essendo un e-frame l'indirizzo così non va bene, ma ogni cosa io abbia provato non va comunque, come ho detto su nel primo post.
p.s. sono un programmatore amatoriale, quindi immagino ci siano modi di gran lunga più efficienti di questo per fare questa cosa, ma non li conosco ><
14/04/2023 09:00:22
La questione è che dovrei vedere i sorgenti dei file, per poi provare a debuggare in locale per capire quale è il flow della pagina.
Il fatto non si ricarichi la pagina se non manualmente è dovuto,credo, al fatto che la chat viene caricata con una funzione Javascript.
Dovresti, sempre con una roba simile, fare una reload del div dove viene scritta la chat.
Ma ripeto , senza sorgente è complesso fare una ipotesi.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Sea of Conquest ↗
Fallen Gods ↗
New Orleans ↗
World of the Sea Battle ↗