Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    129

    Script finestra all'arrivo di un messaggio

    Ciao a tutti,
    premetto sin da subito che il mio rapporto con gli script non è mai stato dei più ampi, ho sempre programmato pagine php con db mysql, ma non mi sono mai complicato la vita come dovrò fare ora.

    Avrei la necessità di creare uno script che mi faccia comparire una finestra (o aggiornare un frame) agni qual volta arrivi un nuovo messaggio.

    Mi spiego meglio, immaginiamo qui nel forum, io scrivo a "pincopallino" un messaggio privato ( immaginiamo che pincopallino sia connesso), compongo il mio messaggio, premo invio e subito a pincopallini appare la finestrella "hai ricevuto un messaggio da XY".

    ora... nessun problema se facessi un frame che si aggiorni e che se trova un nuovo messaggio (tramite php e mysql), faccia apparire la finestrella, ma la mia necessità è di far apparire la finestrella senza avere un frame che continui ad aggiornarsi, cosa che con il php è moooolto difficile se non impossibile da fare.

    Avete idea di come possa fare?
    Parlando sinceramente, non so da che parte iniziare.... help....!!!


    Marci

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    se conosci il php sei quasi a posto.
    Quando carichi una pagina del forum questa fa inizialmente una query sull'utente connesso e rileva se un particolare campo è impostato ad esempio con un valore diverso da 0 (zero significa che non ci sono messaggi nuovi)

    se il risultato è diverso da zero crei dinamicamente una funzione javascript di questo tipo nell'header

    codice:
    function showMessage() {
      if (confirm("Vuoi leggere il nuovo messaggio?")) {
         location.href = "go_to_page_of_pvt_message.php";
      }
    }
    e nel tag body scrivi il codice necessario ad attivare la funzione al completo caricamento della pagina, cioè

    codice:
    <body onload="showMessage()">

    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    129
    si, questo comunque mi comporta che vi sia un reflesh di un qualche frame che "scatena" la query e quindi l'allert, ma non vi è assolutamente un metodo js per fare il controllo continuamente senza aggiornare la pagina?
    Che ne so... eseguire una query tramite js senza bisogno del reflesh...

    (perchè per farlo così potevo semplicemente inserire la query in tutte le pagine, ma il mio interesse è quello del comparire a pagine ferme)


    Marco

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    129
    Tanto per fare un esempio che mi è venuto in mente ora, nella posta di libero, se letta dal sito, quando arriva una nuova mail, ti si apre (senza alcun reflesh) una finestrella che ti dice "Nuova mail da leggere".

    Era questo che volevo fare...


    Marco

  5. #5

    interesse

    Mi interessa anche a me...

    dovrei leggere nel database dei dati e visualizzarli senza l'ausiglio del refresh.
    Le pagine le ho in php, di cui so usarlo abbastanza, ma di js non ne so gran che...

    Avevo pensato:
    1) mi collego al db con php e faccio la mia query
    2) il ciclo invece di farlo in php avevo pensato di farlo in js così da farlo refreshare sempre.
    Il ciclo in php che volevo trasformare in js che si auto refresha è questo (a me interessa refreshare sono quelli all'interno di echo"")
    codice:
    while ($row_account01 = mysql_fetch_array($risorse)){
    		  $risorsa_a = $row_account01[ris_a]";
                      echo"$row_account01[ris_a]";
    
    }
    In teoria si dovrebbe far così come procedimanto, ma non ne sono sicuro. Chiedo aiuto.

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Assumendo come base il fatto che il server non puo' inviare di sua iniziativa niente che non sia stato prima richiesto dal client , non e' possibile avere in tempo reale l'avviso che qualcosa sul server e' cambiato... occorre attendere la prossima richiesta del client.

    Per quanto riguarda il tuo PHP... non ho idea di cosa ci sia scritto :master:

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7

    [php][js]

    il php praticamente si collegaga al database, cicla una tabella e trova il valore.

    Il ciclo while si occupa del ciclaggio e mette i volori in una array ($row_account01[ris_a]).

    all'interno del ciclo c'è una variabile del campo trovato $risorsa_a
    e una stampa della variabile su schermo echo"...";

    questo per spiegare il php.

    Adesso che ci penso, cmq hai ragione, dovrei in js fare una chiamata continua al server e poi prelevare sempre i valori...

    DOMANDA:
    Non posso collegarmi con js a Mysql e farmi mandare i valori di continuo?

    grazie, ciao

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    DOMANDA:
    Non posso collegarmi con js a Mysql e farmi mandare i valori in di continuo?
    E tu lasceresti il tuo db a disposizione di chiunque sappia usare il javascript? VVoVe:

    Ovviamente no, il javascript non puo' accedere ad oggetti sul server, ma eventualmente solo a quelli scaricati sul browser.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    tecnicamente con ajax, in javascript, potresti chiamare una pagina sul server (tramite oggetto xmlhttprequest) che esegue una query.

    Se produce un recordset non vuoto prendi l'output della pagina e la dai in pasto ad una funzione di callback (sempre in js)

    Ma ti sconsiglio vivamente di farlo (soprattutto se non hai idea di che cosa sia ajax ).

    Se un forum (come questo) adottasse un approccio di questo tipo credo che il server collasserebbe in un attimo, senza contare i problemi derivanti dagli accessi al database (teoricamente) quasi simultanei, che potrebbero portare il database in stati incoerenti

    Se vuoi usare comunque quest'approccio fai una ricerca su google o su questo forum.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  10. #10
    uhm l a vedo critica... il databse avrà numerosissimi acessi quindi non posso permettermi una "overdose di chiamate"

    Acc *si gratta la testa per pensare a qualcosa*

    ecco forse così:
    dato che:
    il dato da prelevare nel mysql è:
    INT
    dato che devo aggiornare visivamente INT perchè nel db cresce seguendo una formula del tipo:
    INT = INT + (INTa+INTb+INTx) + (INT2a + INT2b INT2x) - (INT3a + INT3b + INT3x)
    dato che nel mysql ho tutti gli INT dell'equazione.
    dato che l'equazione non è variabile sino a quando non viene generato un evento da parte di un utente in cui andrà a cambiare al massimo i valori di INTxx e non l'equazione

    Non posso calcolarmi nel tempo (t=1sec) in js il valore che ho nel db prelevando solo i dati iniziali?
    se si come?
    script script, non so una H di js, ma prometto di studiarlo appena posso ^^

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 © 2024 vBulletin Solutions, Inc. All rights reserved.