Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    14

    Attendere modifica database

    Ciao a tutti ragazzi! Volevo farvi una domanda su ajax. Come da titolo vorrei che quando l'utente si trova in una certa pagina attesa.html, intanto viene verificato (in maniera iterativa ogni tot secondi magari) se un valore all'interno del database cambia oppure no. Come posso risolvere? Grazie anticipatamente

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Devi usare steTimeout() o setInterval() rieseguendo la chiamata ajax ogni tot secondi/minuti
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    14
    Scusa ma ancora non sono arrivato alla soluzione. Ti dico come sto procedendo.

    crea_partita.php
    codice:
    <!DOCTYPE>
    <html>
    <head>
    	<title>Crea Partita</title>
    	<script type="text/javascript" src="./ajax.js"></script>
    </head>
    <body onLoad="controlla_sfidante();">
    	
    </body>
    </html>
    ajax.js
    codice:
    function listenResp() {
        alert(this.responseText);
    }
    
    
    function esempio3(){
    	var oReq = new XMLHttpRequest();
        oReq.onload = listenResp;
        oReq.open("GET", "prova.php", true);
        oReq.send(null);
    	setTimeout(esempio3(),1000);
    }
    
    
    function controlla_sfidante(){
    	setTimeout(esempio3(),1000);
    }
    Infine c'è prova.php che va a interrogare il database per verificare eventuali cambiamenti di un preciso campo.
    Sapresti dirmi dove sbaglio? Grazie per la disponibilità

  4. #4
    Prova questo
    codice:
    // jquery recuperi il valore da pagina  e oggetto
       $("#divdovevisualizzare").load("http://www.pagina.asp #divdati") ;
      
    
    // ogni 5 secondi si aggiorna
       setInterval( function(){
         $("#divdovevisualizzare").load("http://www.pagina.asp #divdati") 
         } ,5000);
    Ultima modifica di rinaldi; 01-02-2015 a 20:19

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    14
    Non vorrei usare jquery ma ajax

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Prova cosi ma non uso più ajax da un po e potrei sbagliare
    codice:
    function listenResp() {
        if(this.responseText){
    setTimeout('esempio3()',1000);
    }
    }
    
    
    function esempio3(){
        var oReq = new XMLHttpRequest();
        oReq.onload = listenResp;
        oReq.open("GET", "prova.php", true);
        oReq.send(null);
        
    }
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    14
    Ok grazie adesso la funzione esempio3() viene eseguita ogni secondo. Però rimane il problema che il codice php di prova.php non viene eseguito, ossia la funzione che va a interrogare il db e tutto il resto.
    Con la riga
    codice:
    oReq.open("GET", "prova.php", true);
    non si dovrebbe eseguire il contenuto di prova.php? Grazie
    Ultima modifica di Felcone; 01-02-2015 a 23:51

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non capito cosa intendi, con ajax richiami la pagina "prova.php" vedi la console del browser per monitorare la chiamata.



    P.S. Ho la netta sensazione che tu stia brancolando nel buoi, senza avere le dovute conoscenze che il progetto richiede, e non credo che il forum possa "illuminarti" spero di sbagliare, rivaluta se:
    A) Ricominciare prendendoti il tempo necessario per studiare js e ajax
    B) Abbandonare perché troppo complesso
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    14
    Credo di avere le conoscenze giuste di js, forse non di ajax (sto imparando). Nel caso non riesci proprio ad aiutarmi prenderò in considerazione il tuo primo suggerimento.
    Allora provo a riorganizzare le idee. Con setInterval(esempio3(), 1000) js dovrebbe eseguire la funzione esempio3() ogni secondo al contrario della funzione setTimeout() che esegue solo una volta. La funzione esempio3() è la seguente:

    codice:
    <body onLoad="setInterval(esempio3(), 1000);"></body>
    <!--ho evitato di scrivere tutto il file .html-->
    codice:
    function listenResp() {
        alert(this.responseText);
    }
    
    
    function esempio3(){
        var oReq = new XMLHttpRequest();
        oReq.onload = listenResp;
        oReq.open("GET", "prova.php", true);
        oReq.send(null);
    }
    mentre prova.php è semplicemente:

    codice:
    echo "prova";
    Quindi se non vado errato ogni secondo dovrebbe essere stampato a video la stringa "prova".
    L'effetto che ottengo io invece è che l'iterazione viene eseguita una sola volta, ossia stampa "prova" e poi si blocca. Sai dirmi qualcosa?

    P.S. Potresti consigliarmi una guida adatta all'ajax che affronta problemi di questo tipo? grazie ancora
    Ultima modifica di Felcone; 02-02-2015 a 17:47

  10. #10
    codice:
    
    <body onLoad="setInterval('messaggio()',5000)">
    
     
    <script>
    
     
    
    function messaggio()
    {
          
    var AJAX = new XMLHttpRequest();
    var url = "prova.asp";
    
     
     
     if (       AJAX.readyState == 4 &&    AJAX.status == 200  )
      { 
    AJAX.open("GET", url, true);
    AJAX.send();
    
    
           
      console.log("OK");
      console.log( AJAX.responseText);
     }
      else
      
      {   console.log("errore url");     }
         
    }
      
          
    
    </script>

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.