Visualizzazione risultati 1 fino 20 di 20

Discussione: refresh parziale

  1. #1
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito refresh parziale

    Salve vi chiedo un'altra cosa...avrei la necessità di creare un refresh automatico ogni 4 secondi di una mia pagina...l'unico problema è che in essa ho un text/area e se il refresh avviene mentre sto scrivendo (cosa inevitabile dato il tempo molto ravvicinato dei refresh) il testo contenuto in tale "cella" viene cancellato...

    conoscete un modo per fare tutto ciò senza però perdere il testo?
    oppure fare il refresh escludendo il campo?


    potrei risolvere il mio problema con uno script che mi permetta di ripetere una query automaticamente ogni 4 secondi
    grazie Fabio
    Ultima modifica di fabiovergotti : 22-09-2013 alle ore 18.33.54

  2. #2
    L'avatar di naviland
    naviland non è connesso Utente
    Data registrazione
    31-12-2009
    Messaggi
    128

    Unhappy

    Nel tuo caso il semplice meta refresh non è applicabile, potresti intervenire con js creando uno script che ogni 4 sec invia il form nel quale è contenuta la textarea e da li utilizzare php per inserire il testo fino a li scritto nella nuova pagina.

    Non so come sia strutturato il tuo sito web ne a cosa ti serva questo refresh ma non mi sembra una buona soluzione data la presenza di quel campo, se devi ad esempio aggiornare solo una parte della pagina ti consiglio di usare ajax e in ogni caso 4 secondi è davvero un tempo ristretto è forse una chat?
    Ultima modifica di naviland : 22-09-2013 alle ore 20.24.20

  3. #3
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da naviland Visualizza messaggio
    Nel tuo caso il semplice meta refresh non è applicabile, potresti intervenire con js creando uno script che ogni 4 sec invia il form nel quale è contenuta la textarea e da li utilizzare php per inserire il testo fino a li scritto nella nuova pagina.

    Non so come sia strutturato il tuo sito web ne a cosa ti serva questo refresh ma non mi sembra una buona soluzione data la presenza di quel campo, se devi ad esempio aggiornare solo una parte della pagina ti consiglio di usare ajax e in ogni caso 4 secondi è davvero un tempo ristretto è forse una chat?
    questa pagina è quella di una chat....

    (il text/area è il campo per scrivere il messaggio che dopo tramite una pagina di interrogazione vengono scritti in un db per dopo essere riletti ad ogni refresh)

  4. #4
    Guest

    Predefinito

    Ciao Fabio
    Dunque, il tuo non è un caso particolarmente difficile, vi sono a mio parere ( apprendista programmatore ) due possibili strade da percorrere:



    Per quanto riguarda la prima soluzione, personalmente te la sconsiglio poiché deprecata.
    Ma resta comunque una soluzione semplice ed efficacie ( nonostante alcuni svantaggi ) che dovresti riuscire a capire rapidamente.
    Dovresti portare il tuo form con i relativi campi, nel tuo caso una TEXTAREA all'interno di un altra pagina e chiamarla tipo: chat_input.php
    All'interno di quest'ultima dovrai scrivere la funzione di refresh ogni tot secondi, nel tuo caso 4.
    In seguito includerai tale file, grazie a src="" nella pagina dove precedentemente era presente la textarea. in questo modo si aggiornerà sempre e solo l' iframe, e il resto della pagina resterà uguale.

    La seconda soluzione invece è molto piu moderna. Grazie all'uso della libreria Jquery e ai <div> ti basterà racchiudere la tua chat in un blocco ( div ) e aggiornare quello che ti interessa sfruttando le mille voci di jquery. Vorrei farti un esempio di quest'ultima soluzione, ma dovrei linkarti siti esterni, io non sono molto abile con jquery, finirei per scrivere codice spazzatura.

    Beh questo è tutto, ho cercato di aiutarti, sicuramente ci saranno altri utenti che potranno aiutarti in modo piu completo. Comunque sia, per qualsiasi dubbio, scrivi qui e io cercherò di aiutarti nei limiti delle mie conoscenze.

    Ciao

  5. #5
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Se si vuol soltanto usar ajax senza jQuery si può usarlo nativamente. Qui è dove lo imparai; qui c'é un esempio che scrisse dread.

    Ciao!

  6. #6
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da ernestocampese Visualizza messaggio
    Ciao Fabio
    Dunque, il tuo non è un caso particolarmente difficile, vi sono a mio parere ( apprendista programmatore ) due possibili strade da percorrere:



    Per quanto riguarda la prima soluzione, personalmente te la sconsiglio poiché deprecata.
    Ma resta comunque una soluzione semplice ed efficacie ( nonostante alcuni svantaggi ) che dovresti riuscire a capire rapidamente.
    Dovresti portare il tuo form con i relativi campi, nel tuo caso una TEXTAREA all'interno di un altra pagina e chiamarla tipo: chat_input.php
    All'interno di quest'ultima dovrai scrivere la funzione di refresh ogni tot secondi, nel tuo caso 4.
    In seguito includerai tale file, grazie a src="" nella pagina dove precedentemente era presente la textarea. in questo modo si aggiornerà sempre e solo l' iframe, e il resto della pagina resterà uguale.

    La seconda soluzione invece è molto piu moderna. Grazie all'uso della libreria Jquery e ai <div> ti basterà racchiudere la tua chat in un blocco ( div ) e aggiornare quello che ti interessa sfruttando le mille voci di jquery. Vorrei farti un esempio di quest'ultima soluzione, ma dovrei linkarti siti esterni, io non sono molto abile con jquery, finirei per scrivere codice spazzatura.

    Beh questo è tutto, ho cercato di aiutarti, sicuramente ci saranno altri utenti che potranno aiutarti in modo piu completo. Comunque sia, per qualsiasi dubbio, scrivi qui e io cercherò di aiutarti nei limiti delle mie conoscenze.

    Ciao


    ho posizionato la mia tabella (elemento da aggiornare) all'interno di un div (con id="messaggi")
    ma nonostante questo non funziona...sapreste dirmi dove ho sbagliato?
    Codice HTML:
    <script type="text/javascript">
    	setInterval(function() {
    			$("#messaggi").load(location.href+" #messaggi>*","");
    							}, 100);				  
    </script>
    Ultima modifica di alemoppo : 24-09-2013 alle ore 22.51.31 Motivo: +tag [html]

  7. #7
    Guest

    Predefinito

    Sfortunatamente, non sono capace di aiutarti, aspettiamo un esperto.
    Però ho un link che potrebbe aiutarti molto, proprio per il tuo problema. Ti invio un PM

  8. #8
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    .load() come primo parametro vuole l'ul della pagina. Perché tu hai messo:

    Codice:
    location.href+" #messaggi>*"
    ?

    Ho visto nella documentazione che hanno aggiunto la possibilità specificare un id da dove prelevare i dati, ma perché poi hai messo un "maggiore"?

    Infine, hai incluso jQuery nella tua pagina?

    Se ancora hai problemi, sarebbe meglio che linkassi la pagina interessata per vedere direttamente gli eventuali problemi.
    Comunque, ti ho fatto un esempio qui. Nota che non è indispensabile passare il secondo id: puoi benissimo fare una pagina che stampa soltanto quello che ti serve, e quindi prendere "tutto", senza passare nessun id nel primo parametro di load(); oppure meglio ancora organizzare i dati nel formato JSON.


    @ernestocampese : non credi che il link (se fatto bene) può essere utile anche ad altre persone? Se non è un link di spam al tuo/tuoi siti, puoi postarlo qui in modo che sia consultabile da tutti.

    Ciao!
    Ultima modifica di alemoppo : 24-09-2013 alle ore 23.29.31

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio

    @ernestocampese : non credi che il link (se fatto bene) può essere utile anche ad altre persone? Se non è un link di spam al tuo/tuoi siti, puoi postarlo qui in modo che sia consultabile da tutti.

    Ciao!
    Per me è un piacere, non è un collegamento ai miei/mio sito, quindi lo scrivo a tutti voi, nel caso infranga qualche regola, lo editerò velocemente.

    Aggiornare un Div con jquery, senza reload della pagina!

    Ciao

  10. #10
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Quello script però serve per modificare il contenuto di un contenitore html tramite il suo ID, ma i dati non li prende da una chiamata ad una pagina: tutti i dati devono già essere caricati al momento dell'apertura della pagina.

    Giusto per completezza, quel codice può essere riscritto senza "scomodare" jquery, in questo modo:
    Codice HTML:
    <html>
    <head>
    <title>Modificare il contenuto di un div</title>
    <script type="text/javascript">
    window.onload = function()
    {
    	document.getElementById('modificaTesto').onclick = function()
    	{
    		document.getElementById('contentBox').innerHTML = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque varius tortor elit. In dapibus nulla sit amet nisi varius a tristique ante adipiscing. Nullam lacus massa, suscipit id vehicula in, dignissim a sapien. Vestibulum fringilla dui at nibh laoreet et consequat nibh facilisis.";
    	}
    }
    </script>
    </head>
    <body>
    <div id="contentBox">Lorem ipsum dolor sit amet, consectetur adipiscing elit..</div>
    <br />
    <a id="modificaTesto">[Modifica]</a>
    </body>
    </html>
    -sposto nella sezione javascript-

    Ciao!
    Ultima modifica di alemoppo : 25-09-2013 alle ore 13.01.03

  11. #11
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    .load() come primo parametro vuole l'ul della pagina. Perché tu hai messo:

    Codice:
    location.href+" #messaggi>*"
    ?

    Ho visto nella documentazione che hanno aggiunto la possibilità specificare un id da dove prelevare i dati, ma perché poi hai messo un "maggiore"?

    Infine, hai incluso jQuery nella tua pagina?

    Se ancora hai problemi, sarebbe meglio che linkassi la pagina interessata per vedere direttamente gli eventuali problemi.
    Comunque, ti ho fatto un esempio qui. Nota che non è indispensabile passare il secondo id: puoi benissimo fare una pagina che stampa soltanto quello che ti serve, e quindi prendere "tutto", senza passare nessun id nel primo parametro di load(); oppure meglio ancora organizzare i dati nel formato JSON.


    @ernestocampese : non credi che il link (se fatto bene) può essere utile anche ad altre persone? Se non è un link di spam al tuo/tuoi siti, puoi postarlo qui in modo che sia consultabile da tutti.

    Ciao!
    grazie mille per il codice...potresti lincarmi la pagina "casuale.php"?

  12. #12
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Beh, visto che la pagina si chiama casuale.php, è sufficiente aggiungere all'url quest'ultima, quindi si trova in: http://alemoppo.altervista.org/LABS/load/casuale.php

    Visto che però è PHP e quindi non puoi vedere il sorgente completo, lo scrivo qua(anche se è banale):

    Codice PHP:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>testo della pagina 2!</title>
    </head>

    <body>
    <div id="testo_nascosto">
    Questo testo non sar&agrave; mai visibile nella prima pagina, perché .load() filtra il #div1. Se non ci fosse stato quel id in .load(), sarebbe stata mostrata anche questo testo!
    </div>
    <div id="div1">
    <?= substr(md5(rand()*time()), 0, 10); ?>
    </div>
    </body>
    </html>
    p.s: nota che per ajax come pagina di input è sufficiente una stringa (e non tutta la pagina completa html). L'ho scritto in html perché altrimenti jQuery non avrebbe riconosciuto #div1

    Ciao!

  13. #13
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Beh, visto che la pagina si chiama casuale.php, è sufficiente aggiungere all'url quest'ultima, quindi si trova in: http://alemoppo.altervista.org/LABS/load/casuale.php

    Visto che però è PHP e quindi non puoi vedere il sorgente completo, lo scrivo qua(anche se è banale):

    Codice PHP:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>testo della pagina 2!</title>
    </head>

    <body>
    <div id="testo_nascosto">
    Questo testo non sar&agrave; mai visibile nella prima pagina, perché .load() filtra il #div1. Se non ci fosse stato quel id in .load(), sarebbe stata mostrata anche questo testo!
    </div>
    <div id="div1">
    <?= substr(md5(rand()*time()), 0, 10); ?>
    </div>
    </body>
    </html>
    p.s: nota che per ajax come pagina di input è sufficiente una stringa (e non tutta la pagina completa html). L'ho scritto in html perché altrimenti jQuery non avrebbe riconosciuto #div1

    Ciao!
    il file php contiene parti php? o è quello che vedo visualizzando il sorgente?

  14. #14
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Contiene una parte PHP che scrive la stringa random, come puoi notare nel codice che mi hai anche quotato...

    Ciao!

  15. #15
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Contiene una parte PHP che scrive la stringa random, come puoi notare nel codice che mi hai anche quotato...

    Ciao!
    intendevo la index del link che mi hai lincato

  16. #16
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Ah scusa... è puro html. È quello che vedi... Anche perché ha estensione "html", e nel mio spazio non ho attivato l'interprete php nei file non-php.

    Comunque, se può esserti utile, qui un esempio un pelo più completo.

    Ciao!
    Ultima modifica di alemoppo : 25-09-2013 alle ore 21.01.33

  17. #17
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Ah scusa... è puro html. È quello che vedi... Anche perché ha estensione "html", e nel mio spazio non ho attivato l'interprete php nei file non-php.

    Comunque, se può esserti utile, qui un esempio un pelo più completo.

    Ciao!

    ho provato a fare come mi hai detto tu e funziona....c'è solo una cosa che non capisco...perchè il codice presente nell'altro doc a volte funziona a volte no?
    inoltre non mi scrive più il testo sul database di conseguenza non apapre più il messaggio


    link: http://fabiovergotti.altervista.org/...ne_on-line.php
    Ultima modifica di fabiovergotti : 26-09-2013 alle ore 17.07.28

  18. #18
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

  19. #19
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Io vedi questo. Li vedo sempre, sia con chrome, sia con firefox.

    Se non ti scrive più sul database, ci sarà qualche problema nella pagina "invio_interrogazione.php".

    EDIT: ho provato a scrivere qualcosa, e appare correttamente.
    Sarebbe però più bello se usassi ajax anche per inviare i dati, oltre che per leggere i nuovi: così la pagina non verrà mai ricaricata completamente.

    Ciao!
    Ultima modifica di alemoppo : 03-10-2013 alle ore 15.30.04

  20. #20
    fabiovergotti non è connesso Utente
    Data registrazione
    18-02-2013
    Messaggi
    249

    Predefinito

    i dai sul database vengono scritti correttamente.....sempre....ma la pagina a volte...quando invio il messaggio dopo non lo rilegge se invece rimango fermo senza scrivere niente funziona tutto a meraviglia....

    quello che non mi spiego è che non lo fà sempre ma solo a volte...(quindi non penso sia un problema di codice)

Regole di scrittura

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