Visualizzazione dei risultati da 1 a 6 su 6

Discussione: write in una chat

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70

    write in una chat

    contesto: una specie di chat (un gioco di ruolo a chat), dove c'e' un input.php che riceve il messaggio dell'utente, e un refresh.php che si occupa di sistemarlo, formattandolo, nell'area di chat.

    tramite la query che prende i messaggi dal mysql, li ordino in ascendente, cioe il più recente in alto. Infatti quando forzo il refresh, i messaggi si ordinano nel modo corretto.

    cosa mi succede? che nel momento in cui inserisco un successivo messaggio, questo viene inserito in coda, sotto agli altri, quindi non nell'ordine corretto, fino al prossimo refresh dove invece si mette a posto.

    credo che lo script in questione sia questo:

    <script>
    parent.chattesto.document.write(´<?= $newchat ?>´);
    var h = 0;
    try {h = parent.chattesto.document.body.offsetHeight + 1000;} catch(e) {h = 0};
    parent.chattesto.scroll (0, h);
    </script>


    non riesco a capire cosa posso fare per far si che nel momento in cui si attiva il document.write , questa "newchat" venga scritto in alto??

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70
    up
    scusate se up ma con la velocità di questo forum nel giro di 1 giorni mi viene ignorato -.-

  3. #3
    E' vero che questo forum non sempre è veloce come dovrebbe, ma dovresti fornire più dati sul problema.

    Quali sono le routine/query che vengono eseguite?
    Elencale nell'ordine reale di esecuzione.

    C'è uno script Ajax che in seguito all'inserimento del post nel DB manda anche il messaggio sulla chat in modo asincrono?
    E quali parametri ha il post? (È qui che a occhio si dovrebbe comporre una matrice contenente gli array corrispondenti ai post ordinandola per l'elemento degli array che tu stabilisci, sostituendola alla matrice precedente).
    Senza sapere tutto questo è impossibile aiutarti (a meno che uno non abbia avuto esattamente il tuo stesso problema e lo intuisca dalle informazioni che hai postato).

    Cerca di analizzare il problema globalmente, escludendo man mano i fattori possibili ed isolandolo casomai ad una sola pagina o ad un solo script e postalo, perché se posti molto materiale anche in quel caso è difficile che qualcuno si metta a leggere tutto e a studiare un debug.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    70
    cerco di speigarmi al meglio, considerando che sto usando e modificando un codice opensource e so davvero poco di javascropt -.- portate pazienza:

    il file si chiama Refresh.php. si inizia con una query che recupera tutti i messaggi dal mysql entro in certo limite di tempo:

    $MySql = "SELECT * FROM Chat WHERE Stanza = '".pars($Stanza)."' AND ID > ".$LastTime." AND DATE_ADD(Ora, INTERVAL 20 MINUTE) >= NOW()";
    $MySql .= " ORDER BY ID DESC LIMIT 0, 20";
    $Result = mysql_query($MySql);
    echo "";
    $Counter = 0;
    $newchat = '';


    poi a seconda di diverse condizioni che ora non posto perchè lunghissime, una variabile:
    $n
    viene riempita con un testo, che è il prossimo messaggio in chat. Questo testo viene raccolto dal un altro file, input.php che non fa altro che scrivere nella tabella "chat" il messaggio.

    alla fine viene fatto un replace per alcuni caratteri, e viene postato il nuovo messaggio nel frame "chattesto".

    $newchat = $n.$newchat;
    $n = '';
    }
    $newchat = $Testata.$newchat;
    $newchat = str_replace("\\", "\\\\", $newchat);
    $newchat = str_replace("'", "\\'", $newchat);


    ?>
    <script>
    parent.chattesto.document.write('<?= $newchat ?>');
    var h = 0;
    try {h = parent.chattesto.document.body.offsetHeight + 3000;} catch(e) {h = 0};
    parent.chattesto.scroll (0, h);
    </script>



    morale: se nella query iniziale metto ASC invece che DESC i messaggi vengono ordinati correttamente dal più recente al più vecchio. MA se non forzo il refresh della pagina con F5, e inserisco un messaggio questo viene visualizzato in coda. Fino al prossimo ricaricamento del frame chattesto, che porta tutto ancora nello stesso ordine.

    spero di essere stato esauriente grazie a tutti

  5. #5
    potrei avere lo script?
    [ SimplyMepis 8 ]Copyleft
    www.mepisitalia.org IL SITO ITALIANO UFFICIALE DI MEPIS
    www.salentomovida.it LA MOVIDA DEL SALENTO HA UN NUOVO PUNTO D'INCONTRO SUL WEB
    [ SUD SOUND SYSTEM MINA FUECU INTRA ALLU SALENTU ]

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da alex86
    potrei avere lo script?
    in una discussione vecchia di due anni, di uno script di cui non sai assolutamente niente
    ma non fai prima a prenderne uno dalle raccolte di php.html.it o asp.html.it?

    poi, puoi continuare qui!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.