Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Aggiornare tabella senza aggiornare pagina

    Ciao a tutti, sto realizzando (o per meglio dire ho realizzato) un sistema come quelli che usano i tabacchini per fare le ricariche...

    Mi spiego meglio e poi vengo al problema.

    C'è il tabaccaio che accede al sistema richiede una ricarica da 5€ tim (in pratica inserisce la richiesta nel db)

    Dall'altro lato c'è un call center che visualizza la lista delle richieste di ricarica da evadere (in pratica la pagina fa una query al db, e crea la tabella di "x" righe per quante sono quelle contenute nella tabella ricariche da effettuare)

    Quello che vorrei è che il call center non deve aggiornare di continuo la pagina per vedere le nuove richieste, ma la tabella crea in automatico una nuova riga per ogni nuova richiesta.

    E' possibile fare ciò? Come potrei fare?

    (è come il sito live della gazzetta dello sport, che senza aggiornare la pagina, se segna una squadra, ti aggiorna il risultato)

    Grazie
    www.mtlook.it - Marketing & Image Management
    www.advise.it - Soluzioni informatiche per la tua azienda

  2. #2
    senza aggiornare la pagina, se segna una squadra, ti aggiorna il risultato
    se aggiorna il risultato allora aggiorna la pagina.

    Forse lo fa in modo asincrono (aggiorna solo qualche elemento, come quel risultato, lasciando tutto il resto intonso) ma comunque la aggiorna.
    E quindi comunica col db.

    Esistono due soli modi per farlo:
    polling (verificare ogni tot se ci sono novità) oppure interrupt/eventi (farsi chiamare quando ci sono novità).

    Non è programmazione molto semplice.

    Inoltre non basta javascript: javascript può leggere periodicamente dati da un server, ma sul server avrai bisogno di una applicazione (php o asp o altro) che risponda alle richieste di aggiornamento consultando il db.
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  3. #3
    Originariamente inviato da softhare
    se aggiorna il risultato allora aggiorna la pagina.

    Forse lo fa in modo asincrono (aggiorna solo qualche elemento, come quel risultato, lasciando tutto il resto intonso) ma comunque la aggiorna.
    E quindi comunica col db.

    Esistono due soli modi per farlo:
    polling (verificare ogni tot se ci sono novità) oppure interrupt/eventi (farsi chiamare quando ci sono novità).

    Non è programmazione molto semplice.

    Inoltre non basta javascript: javascript può leggere periodicamente dati da un server, ma sul server avrai bisogno di una applicazione (php o asp o altro) che risponda alle richieste di aggiornamento consultando il db.
    il lato php già l'ho implementato, infatti come ti ho detto il tutto funziona, però quelli del capl center devono aggirnare sempre la pagina... Come faccio a leggere periodicamente con JavaScript dal db se ci sono novità?
    www.mtlook.it - Marketing & Image Management
    www.advise.it - Soluzioni informatiche per la tua azienda

  4. #4
    Originariamente inviato da siriuxs
    il lato php già l'ho implementato, infatti come ti ho detto il tutto funziona, però quelli del capl center devono aggirnare sempre la pagina... Come faccio a leggere periodicamente con JavaScript dal db se ci sono novità?
    Nessun consiglio?
    www.mtlook.it - Marketing & Image Management
    www.advise.it - Soluzioni informatiche per la tua azienda

  5. #5
    Dovrai usare due distinti script php: uno che genera la pagina ed uno che genera solo la tabella.

    Il primo apre la pagina, definisce un div (id posizione e style) e chiama (setInterval()) tramite ajax il secondo script php, ponendone il risultato nel div sopra definito (innerHTML).

    Il secondo script php manda in output solamente la tabella, senza tag html, head o body di sorta.

    Ogni tot di tempo (definito in millisecondi in setInterval) ajax chiama il secondo script php che restituisce la tabella aggiornata, prende tale tabella e la piazza nel div a sostituire quella precedente.
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  6. #6
    Originariamente inviato da softhare
    Dovrai usare due distinti script php: uno che genera la pagina ed uno che genera solo la tabella.

    Il primo apre la pagina, definisce un div (id posizione e style) e chiama (setInterval()) tramite ajax il secondo script php, ponendone il risultato nel div sopra definito (innerHTML).

    Il secondo script php manda in output solamente la tabella, senza tag html, head o body di sorta.

    Ogni tot di tempo (definito in millisecondi in setInterval) ajax chiama il secondo script php che restituisce la tabella aggiornata, prende tale tabella e la piazza nel div a sostituire quella precedente.
    Scusami se te lo chiedo, ma mi faresti un banale esempio? Il problema è che con javascript e css (quindi ajax) non me la cavo e quindi non saprei come impostare il tutto...

    Grazie mille
    www.mtlook.it - Marketing & Image Management
    www.advise.it - Soluzioni informatiche per la tua azienda

  7. #7
    L'esempio è tutt'altro che banale.
    CSS centra poco o punto!

    Ajax alla fin fine è solo un modo di utilizzare javascript per leggere file dal web senza lasciare la pagina.
    Tali file possono quindi venire elaborati o inseriti in elementi della pagina per aggiornarla asincronamente.

    Il div in cui piazzerai la tabella dovrà avere una id specificata (es: ilMioDiv).
    E supponiamo che il tuo secondo script php si chiami tabaggiorna.php

    Nella pagina dovrai avere una funzione javascript di questo tipo (nell'header):

    codice:
    function ask_file(qualediv,qualefile){
    var dove=(document.getElementById?document.getElementById(qualediv):document.all[qualediv]);
    var request=false;
    try{request=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){
    try{request=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){
    request=false;};};
    if(!request && typeof XMLHttpRequest!='undefined'){request=new XMLHttpRequest();};
    request.open("GET",qualefile,true);
    request.onreadystatechange=function(){
    if(request.readyState==4){
    if(request.status==200){
    dove.innerHTML=request.responseText;
    };};};request.send(null);};
    ed tra le ultime righe della pagina:

    codice:
    windowSetInterval(10000,'ask_file("ilMioDiv","http://www.tuodominio.boh/path/tabaggiorna.php")');
    In quest'ultima linea personalizzi il tempo di refresh (millisecondi) il nome del div di destinazione ed il nome del file da caricare.
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  8. #8
    Originariamente inviato da softhare
    Esistono due soli modi per farlo:
    polling (verificare ogni tot se ci sono novità) oppure interrupt/eventi (farsi chiamare quando ci sono novità).
    siceramente non saprei fare un esempio di questo secondo metodo, se hai un link da suggerirmi me lo studio

  9. #9
    Chiaramente hai ragione:
    un esempio di questo secondo metodo
    In un caso di comunicazione tra server e client gestito dal client, come in questo caso, organizzare un sistema di "eventi" generabili dal server e visibili dal client non srà cosa facile.

    C'è materiale per aprire una discussione apposita: comunicazione asincrona da server a client.

    Effettivamente, se trovi qualche link in merito fallo sapere anche a me...
    Tecnolgie per l'arte.
    Arti per la tecnologia.
    softhare

  10. #10
    Mi dici perchè non funziona? Ho creato un esempio banale.

    Ho un file senzanome.html:

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"

    <
    html xmlns="http://www.w3.org/1999/xhtml"
    <
    head
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <
    title>Documento senza titolo</title
    <
    script> function ask_file(qualedivqualefile){ 
    var 
    dove=(document.getElementById?document.getElementById(qualediv):document.all[qualediv]); 
    var 
    request=false
    try{
    request=new ActiveXObject("Msxml2.XMLHTTP");
    }catch(
    e){ try{
    request=new ActiveXObject("Microsoft.XMLHTTP");
    }catch(
    e){ 
    request=false;};}; 
    if(!
    request && typeof XMLHttpRequest!='undefined')
    {
    request=new XMLHttpRequest();}; 
    request.open("GET",qualefile,true); 
    request.onreadystatechange=function(){ 
    if(
    request.readyState==4){ 
    if(
    request.status==200){ 
    dove.innerHTML=request.responseText; };};};
    request.send(null);}; </script> </head> 
    <body> 
    <div id=ilMioDiv> </div> 
    <script> windowSetInterval(1000,'ask_file("ilMioDiv", "./aaa.html")'); </script> </body> </html> 
    ed un file aaa.html

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    <
    html xmlns="http://www.w3.org/1999/xhtml"
    <
    head
    <
    meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <
    title>Documento senza titolo</title> </head
    <
    body

    Ciao ciao!</p> </body> </html
    Perchè non mi compare ciao ciao! ???
    www.mtlook.it - Marketing & Image Management
    www.advise.it - Soluzioni informatiche per la tua azienda

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.