Visualizzazione dei risultati da 1 a 5 su 5

Discussione: messaggi_database

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    51

    messaggi_database

    Sto cercando il modo di caricare i messaggi dal database e visualizzarli a schermo ricaricando ogni tot secondi senza che venga ricaricata la pagina, avete qualche soluzione?

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    una soluzione è fare una richiesta ajax usando setTimeout:

    per setTimeout, http://developer.mozilla.org/en/docs...dow.setTimeout


    per ajax, http://www.prototypejs.org/
    Pietro

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    51
    grazie della risposta , solo che non ci capisco molto dai link che mi hai dato, mi potresti spiegare un pokino meglio.. dato che è la prima volta che uso ajax
    se hai tempo mi faresti un piccolo esempio

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    51
    vorrei sostituire.. il tutto a questo codice in modo da non usare il refresh...


    <?php
    session_start();
    //Variabile che contiene il codice della stanza in cui ci si trova
    $stanza= $_SESSION['stanza'];
    $nick= $_SESSION['nick'];
    require 'config.php';
    //Stabilisco la connessione al database se non la stabilisco restituisce il mess seguente
    $conn=mysql_connect($host,$nome,$password) or die("Errore nella connessione a MySql: " . mysql_error());
    //Vado a stabilire la connessione con il database
    mysql_select_db($database,$conn) or die("Errore nella selezione del db: " . mysql_error());
    //echo $nick;
    $array_nominativi=array();
    $array_messaggi=array();
    $array_colore=array();
    $array_font=array();
    $array_dimensioni=array();
    $contatore=1;
    $ora=time();
    //Vado ad aggiornare il timeout dell'utente
    $Query=' UPDATE utenti_online SET time_out ="'.$ora.'"'.'WHERE nick="'.$nick.'"';
    $ris = mysql_query($Query,$conn)or die("Errore nella query: " . mysql_error());

    //Metto in una variabile l'ora settata a ntempo prima dell'ora attuale
    $ora=$ora-$durata_messaggio;
    //Vado a fare la query per prendere tutti i mess da una certa ora in poi e di una certa stanza in modo da non stamparli tutti
    $Query='SELECT * FROM messaggi WHERE (orario>'.$ora.')and(codice_stanza="'.$stanza.'")' ;
    $ris = mysql_query($Query,$conn)or die("Errore nella query: " . mysql_error());
    //Vado a mettere i mess che ho nel file in un array
    while($riga = mysql_fetch_array($ris)) {
    $array_nominativi[$contatore]=$riga[0];
    $array_messaggi[$contatore]=$riga[1];
    $array_colore[$contatore]=$riga[3];
    $array_font[$contatore]=$riga[4];
    $array_dimensioni[$contatore]=$riga[5];
    $contatore++;
    }
    //Vado a sampare i messaggi all'inverso
    $contatore=$contatore-1;
    print' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">
    <meta name="generator" content="PSPad editor, www.pspad.com">
    <meta http-equiv="refresh" content="3;URL=visualizza_messaggio.php">
    <title>
    </title>
    </head>
    <body>';

    while($contatore!=0) {
    //Vado a caricare il colore del font dal database
    $colore=$array_colore[$contatore];
    //Vado a caricare lo stile del font
    $font=$array_font[$contatore];
    //Vado a caricare la dimensione
    $dimensione=$array_dimensioni[$contatore];
    $nominativi=$array_nominativi[$contatore];
    //A seconda della dimenzione del carattere stampo tot caratteri in una riga
    switch ($dimensione) {
    case 1:
    $app=150;
    $cost=8;
    break;
    case 2:
    $app=110;
    $cost=8;
    break;
    case 3:
    $app=90;
    $cost=4;
    break;
    case 4:
    $app=75;
    $cost=2;
    break;
    case 5:
    $app=55;
    $cost=1;
    break;
    case 6:
    $app=30;
    $cost=-1;
    break;
    case 7:
    $app=15;
    $cost=-3;
    break;
    }

    //Vado a fare la queri per vedere se uno è mod o no
    $Query='SELECT * FROM dati_utente WHERE(nick="'.$nominativi.'")';
    $ris = mysql_query($Query,$conn)or die("Errore nella query: " . mysql_error());
    $riga = mysql_fetch_array($ris);
    if ($riga[6]==1) {
    print '<font color="red"><u>'.$nominativi.':</u></font>';
    }else {
    print '<u>'.$nominativi.':</u>';
    }






    print'<font color="'.$colore.'"face="'.$font.'"size="'.$dimens ione.'">';
    $i=0;
    $cont=0;
    //$spazio=0;
    //Vado a prendere la lunghezza del nominativo
    $lunghezza_nom=strlen($nominativi);
    //Vado a controllare la lunghezza del messaggio
    $lunghezza_mess=strlen($array_messaggi[$contatore]);
    $frase=$array_messaggi[$contatore];
    do {

    if (($cont>=$app) && ($cont<=$app+9)) {
    if (($frase[$i]!=' ')&&($cont!=$app+9)) {
    echo $frase[$i];
    }else {
    echo $frase[$i];
    echo'
    ';
    //Vado a mettere un tot di spazzi vuoti
    for ($spazio=0;$spazio<=$lunghezza_nom+$cost;$spazio++ ) {
    echo'';
    }

    $cont=-1;
    }

    }else {
    echo $frase[$i];
    }



    $cont++;
    $i++;
    } while ($i!=$lunghezza_mess);

    echo'</font>
    ';
    $contatore--;
    }
    print'</body>
    </html>';
    ?>

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Spiegherà certamente assai meglio di me, l'articolo di Andrea Giammarchi in questo link:

    http://javascript.html.it/guide/leggi/95/guida-ajax/

    Pietro

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.