Visualizzazione risultati 1 fino 6 di 6

Discussione: [jQuery/Ajax]Aggiornare il contenuto di un div

  1. #1
    Guest

    Predefinito [jQuery/Ajax]Aggiornare il contenuto di un div

    Ciao a tutti, dovrei aggiornare il contenuto di un div, usando jQuery e Ajax per prendere le informazione da una pagina php e fino a qui tutto bene, ma il problema devo aggiornare per vedere se ci sono nuovi mess ed e brutto vedere che si aggiorna ogni secondo (perché stampo anche la data) come posso fare in modo che si aggiorni solo se ci sono nuovi mess...

    Un esempio pratico su fb quando un amico scrive una pensiero si aggiorna automaticamente homepage, vorrei riuscire ad avere lo stesso effetto consigli...

    Ringrazio anticipatamente...

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Ti faccio un'esempio:

    Supponiamo che noi vogliamo fare una funzione, check_msg(), che prendere, tramite il metodo ajax() di jquery, il risultato di new_msg.php, e che questa pagina non produca nessun risultato se non ci sono nuovi messaggi, e di stampare il tutto in un div con id msg, ripetuta ad intervalli di tempo ( questo non lo scrivo perché credo che lo sai già fare, o sbaglio? e comunque non cambia )

    Codice HTML:
    function check_msg()
    ( 
        $.ajax({
           type : /* tipo richiesta ( get o post ) */,
           data: /* se devi passare qualche parametro alla richiesta */,
           url; "new_msg.php",
           success: function(result)
           {
                if (result != "") {
                   $("#msg").html(result);    
                }
           }
        });
    }
    Come vede il div si aggiorna solamente se la richiesta restituisce un risultato diverso da una stringa vuota ( result != "" )

    Chiaro come esempio? o non era quello che te volevi sapere?
    Ultima modifica di sevenjeak : 06-07-2011 alle ore 08.34.59

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Intanto di ringrazio di aver risposto... =)

    Mi spiego meglio ho 2 tabelle una messaggi ed una risposte,
    un utente scrive un messaggio e chiunque può rispondere al messaggio
    visualizzo 5 messaggi al inizio e poi cliccando su un pulsante altri 5 e cosi via,
    il problema è come potrei fare ad aggiornare nel homepage i messaggi che o
    "sono nuovi cioè appena postati" o "sono stati appena commentati da un altro utente" senza aggiornare tutti i messaggi con le relative risposte...
    Cioè come vado ad identificare ogni div per poi andarlo a modificare...

    spero che hai capito cosa voglio fare...

  4. #4
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Cioè? te vuoi far restituire un risultato ad ajax solo quando il messaggio e nuovo, quindi ancora non è stato letto da te? o vuoi altro?

    Sevenjeak
    Software developer and much more

  5. #5
    Guest

    Predefinito

    super giù si...
    ti faccio 2 esempi vediamo se mi spiego meglio...

    es. 1
    ore 16.15 l'utente registrato (esempio io) entro nel sito
    visualizzo 5 mess
    alle 16.16 un altro utente scrive un messaggio
    (fino a qui tutto bene)
    io dovrei fare vedere al utente registrato (in questo caso io) il messaggio del altro utente senza aggiornare la pagina o andare ad aggiornare tutti i messaggi...

    es. 2
    ore 16.15 l'utente registrato (esempio io) entro nel sito
    visualizzo 5 mess
    clicco sul pulsante "altri messaggi" e ne visualizzo altri 5
    alle 16.16 un altro utente risponde ad un messaggio tipo al 7 messaggio di un altro utente registrato
    (fino a qui tutto bene)
    io dovrei fare vedere al utente registrato (in questo caso io o agli altri utenti registrati) la risposta al messaggio cioè al 7 del altro utente, senza aggiornare la pagina o gli altri messaggi...

  6. #6
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Praticamente vuoi ottenere l'ultimo messaggio non letto dall'utente o l'ultimo messaggio, non letto dall'utente, con una nuova risposta?

    Non ti assicuro niente, non avendolo mail fatto prima dora, ma io farei in questo modo:

    Per visualizzare l'ultimo messaggio non letto, in'ansi tutto mi occorre che nella tabella messaggi si sia un campo contenente, ad esempio il timestamp di quando e stato inviato il messaggio e non saprei, potrai anche inserire, in un'altro campo, un'array serializzata, per memorizzarla nel db, puoi serializzare tramite le funzione serialize() e unserialize(), oppure, secondo me molto più semplice, tramite le funzioni json, json_decode() e json_encode(), in pratica converte un'oggetto ( l'array in questo caso ) in una stringa, rendendola salvabile all'interno della tabella, visto che gli oggetti non possono essere salvati, cosi come sono, in una tabella.

    Cmq, riprendendo, quest'array secondo me dovrebbe contenere gli username di chi ha letto il messaggio, in questo modo, ti basta recuperare il messaggio con timestamp maggiore e che non abbia in array, memorizzata nella tabella, il tuo username, cosi da considerare il messaggio non letto.

    Ora purtroppo per le nuove risposte non ho alcun idea, ma era quello che te intendevi sapere?
    Ultima modifica di sevenjeak : 06-07-2011 alle ore 17.11.39

    Sevenjeak
    Software developer and much more

Regole di scrittura

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