• User

    [Risolto] Aggiornamento parziale dei contenuti di una pagina

    Ragazzi, gira che ti rigira tra le varie quide Ajax, non sono riuscita a trovare esempi pratici che mi permettessero di ricaricare parzialmente le pegine. Mi spiego meglio. Inizialmente avevo creato il mio sito senza l'utilizzo di Ajax(credo si tratti di Ajax, vero?)...o comunque contenuti dinamici. Quindi, ogni volta che passavo da una pagina all'altra, anche se le pagine differivano per un solo <div> (il contenuto delle ricerche, mentre i vari menu erano sempre gli stessi), ogni volta la pagina veniva ricaricata per intero. Ora...è possibile far sì che io carichi solo il <div> dei contenuti? In realtà la domanda è retorica, perchè so che si può, ma come??? So che non è una cosa facile e breve da spiegare, ma qualcuno può provarci?
    Per concretizzare un po', il mio è un banale sito di raccolta di testi di canzoni, e cliccando sulla lettera dell'alfabeto (nel <div> "ricerche") ho nel <div> "risultati" tutte le canzoni il cui titolo o il cui autore inizi per quella iniziale.
    é possibile ricaricare solo il <div> "risultati"?
    Help!!! :mmm:


  • Super User

    Ciao 🙂

    Ti faccio un esempio funzionante che potrà chiarirti molte cose.

    Del codice javascript che richiama una pagina php che passa semplicemente l'orario e un numero casuale.
    Ti basterà spostare il div, e sostituire il timer magari con un evento differente e modificare il codice php per fargli inserire ciò che desideri.

    File html:

    
    <!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>Esempio di Claudioweb</title>
    </head>
    <script type="text/javascript" language="javascript">
    <!-- //<![CDATA[
    var xmlHttp = false;
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }catch(e){
        xmlHttp = false;
      }
    }
    //browser diversi da Internet Explorer
    if (!xmlHttp && typeof XMLHttpRequest != 'undefined')
    {
      xmlHttp = new XMLHttpRequest();
    }
    
    function aggiorna()
    {
      if (xmlHttp)
      {
    
        xmlHttp.open('GET', 'dati.php'); 
        xmlHttp.onreadystatechange = function (){
    
          if (xmlHttp.readyState == 4)
          {
            document.getElementById("aggiornato").innerHTML = xmlHttp.responseText;
            document.test.mostraip.value = xmlHttp.responseText;
          }
        };
        xmlHttp.send(null);
      }
    setTimeout("aggiorna()",1000);
    }
    //]]> -->
    </script>
    <body onload="aggiorna();">
    <div id="aggiornato"></div>
    </body>
    </html>
    

    File dati.php

    <?php
        @header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
        @header('Last-Modified: '.@gmdate('D, d M Y H:i:s').' GMT');
        @header('Cache-Control: no-store, no-cache, must-revalidate');
        @header('Cache-Control: post-check=0, pre-check=0', false);
        @header('Pragma: no-cache');
    
        echo "Orario aggiornato dal server ".date ("H:i:s")."<br/>";
        echo "Numero a caso tra 0 e 100.000 --->".rand (0, 100000)."<br/>";
    
    ?>
    

    Spero ti sia utile almeno per cominciare. :ciauz:

    Ciao


  • User

    Ti Ringrazio!!! 😄 Avevo già risolto, e provato a segnalarvelo, ma il forum mi ha dato qualche problema nel salvataggio delle mie risposte qualche giorno fa e poi non c'ho più provato. Grazie mille ancora davvero!!!