Visualizzazione risultati 1 fino 2 di 2

Discussione: Problema visualizzare in modo corretto un messaggio su una chat in PHP /JQUERY&AJAX

  1. #1
    Guest

    Predefinito Problema visualizzare in modo corretto un messaggio su una chat in PHP /JQUERY&AJAX

    Ciao ragazzi, ho bisogno di un vostro aiuto, ho passato tanto tempo per creare una chat ottimale in php, ma non riesco mai a trovare il modo migliore per leggere dal server un messaggio senza dover ricaricare tutto un div, che è una delle cose che non voglio fare, dato che nella chat che sto sviluppando si possono caricare e guardare video di Youtube.

    Ecco il mio modo per caricare un messaggio è questo:
    Dal form che compilo mando una variabile post a un file php che aggiorna il database [oltre al messaggio nella tabella della chat, aggiorno anche una seconda tabella chiamata "controllo aggiornamento messaggi"], nel file html da cui ho c'è il form e il div della chat carico ogni secondo la pagina dove viene letto l'ultimo messaggio inserito, in questo ultimo file controillo la tabella del controllo aggiornamento e se mi dà valore "1" io mostro l'ultimo messaggio nelal tabella delal chat e subito dopo ri-aggiorno la tabella del controllo ri-settandola a 0.

    Questo è il mio metodo, ma non mi soddisfa molto perché ci son volte in cui il messaggio non viene letto dal lato client.

    Questo è l'url della chat che sto cercando di sviluppare: http://givemeacode.altervista.org/ReChat/



    Se qualcuno riuscisse a darmi una mano, ne sarei davvero felice.

    Ciao a tutti ragazzi!

  2. #2
    Guest

    Predefinito

    Credo di essere riuscito a strutturare una buona asincronizzazione delal chat, usando l'xml; ho fatto così:

    [client]
    Codice HTML:
    var lastid = 0;
    function getMessage()
    {
    	 new Ajax.Request( 'miapaginaxml?id=' + lastid, {
         onSuccess: function( transport ) {
        	
          var messaggi = transport.responseXML.getElementsByTagName( 'messaggio' );
          for( var i = 0; i < messaggi.length; i++ )
          {
            var id = parseInt( messaggi[i].getAttribute('id') ); 
          }
          if(id > lastid)
          {
            $.post('miachatnuovomessaggio',function(e){
            	$('div#newmessage').after( '<span id="'+id+'">' + e + '</span>' );
                $('span#'+id).hide().toggle('slow');
            });      
            lastid = id;
          }
        }
        });
    }
    [SERVER]
    Codice PHP:
    <?php
    include_once 'miaconfigurazionenonsbirciate';
    header( 'Content-type: text/xml' );
    $id = 0;
    if (
    array_key_exists( 'id', $_GET ) ) { $id = $_GET['id']; }
    $id = mysql_real_escape_string($id);#bah tanto per fare
    $r_m = $DB->query("SELECT id,mex FROM miatabella WHERE id > '$id' ");
    ?>
    <messaggi>
    <?php
    while($f_m = $r_m->fetch_assoc())
    {
    extract($f_m);
    ?>
    <messaggio id='<?=$id?>'></messaggio>
    <?php
    }
    ?>
    </messaggi>

    Grazie a tutti comunque xD Ciao belli!

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •