[RISOLTO][PHP] Passaggio variabili senza refresh di pagina

carbonchio

Nuovo Utente
8 Dic 2017
6
0
1
Buongiorno a tutti.
Ho un problema con una pagina php piuttosto banale, dove ho un menu ad albero costruito leggendo delle directory che contengono file html. Poi creo dei link nella forma canonica "pagina.php?p=valore da passare". Al click sul link viene incorporato del codice html nella pagina, e fin qui tutto bene. Però in questo modo ad ogni click si ricarica la pagina e viene ricreato l'albero con spreco di risorse, senza contare che l'albero si richiude ogni volta e non è pratico.
Ho letto che si possono passare le variabili con uno script ajax senza ricaricare la pagina, ma non ho capito bene come funzioni. Se qualcuno gentilmente me lo potesse spiegare con un piccolo esempio sarebbe molto gradito.
Sper di aver postato nella giusta sezione...
Ringrazio anticipatamente
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Dovresti fare una navigazione attraverso il caricamento delle pagine (contenuto) attraverso AJAX in maniera asincrona, in questo modo non vedrai la pagina ricaricarsi ogni volta.
Spero sia utile
 

carbonchio

Nuovo Utente
8 Dic 2017
6
0
1
Grazie Macus_adi,
a livello teorico penso anch'io sia la soluzione, non ho chiara la realizzazione a livello tecnico.
Ad esempio credo si debba usare la funzione
PHP:
$.ajax();
ma non ho capito come attivarla nel link.
Per questo chiedevo un piccolo esempio pratico.
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
file : esempio_11.html
HTML:
<!DOCTYPE html>
    <head>
        <title>jQuery AJAX test</title>
        <script type="text/javascript" src="jquery.min.js"></script>
        <script type="text/javascript">
$(document).ready(function(){
    $('#myButton').bind("click",function()
    {
        alert( "Handler for .click() called." );

        var data =
        {
            foo:  123,
            bar:  456,
            rows:
            [{
                column1: 'hello',
                column2: 'hola',
                column3: 'bonjour',
            },
            {
                column1: 'goodbye',
                column2: 'hasta luego',
                column3: 'au revoir',
            },
            {
                column1: 'hello',
                column2: 'hola',
                column3: 'bonjour',
            },
            {
                column1: 'goodbye',
                column2: 'hasta luego',
                column3: 'au revoir',
            }],
            test1:
            {
                test2:
                {
                    test3: 'abcdef'
                }
            }
        }

        alert(data['foo']+' - '+data['test1']['test2']['test3']);

        $.ajax
        ({
            type:    'post',
            cache:   false,
            url:     'esempio_11.php',
            data:    data,
            success: function(response) { $('#myDiv').html(response); },
            error:   function()         { $('#myDiv').html("malfunzionamento ajax"); }
        });
    });
});
        </script>
    </head>
    <body>
        <input id="myButton" type="button" style="width: 130px; height: 60px" value="send AJAX" />
        <br /> <br />
    <div id="myDiv"> </div>
    </body>
</html>
file : esempio_11.php
PHP:
<?php
echo "ho ricevuto l'array e restituisco questo testo";
?>
l'esempio è molto semplice,
la variabile data contiene, in questo caso, un'array, dovrà contenere le informazioni da passare allo script php
php restituisce una stringa di caratteri che viene visualizzata
spero sia sufficiente per creare ciò che ti serve

upload_2017-12-9_11-44-15.png

upload_2017-12-9_11-45-0.png


ps, gli alert hanno solo lo scopo di controllo
 

carbonchio

Nuovo Utente
8 Dic 2017
6
0
1
Grazie mille Marino51,

dal tuo esempio pratico sono riuscito ad ottenere (con qualche difficoltà) il comportamento che cercavo.
Posto il codice nel caso servisse a qualcun'altro:

ho un albero di navigazione con link del tipo
HTML:
<li><a class="menu" href="data/01-Leopardi 1934-1963/06/06-00.html">La nuova poetica leopardiana</a>

Codice ajax:
HTML:
<script>
   $(document).ready(function(){
       $('a.menu').click(function(e){
           e.preventDefault();
           $page = $(this).attr('href');
           $.ajax({
               type: "GET",
               url: "process.php",
               data: "page=" + $page,
               cache: false,
               dataType :'json',
               success: function(data){
                   $("#dynamic").html(data["content"]);
                   $("title").html(data["title"]);
               }
           });
       });
   });
</script>

e nella pagina process.php:
PHP:
    $content = "";
    $title = "";

    if(isset($_GET['page'])){
            $html = file_get_contents($_GET['page']);
            $dom = new DOMDocument('1.0', 'UTF-8');
            $dom->loadHTML($html);
            $element = $dom->getElementById("idContainer");
            $title = $dom->getElementsByTagName("title");
            $content = $dom->saveHTML($element);
    }
   
    $return_arr = ["title" => $title->item(0)->nodeValue,
                   "content" => $content];
    echo json_encode($return_arr);

in pratica al click dell'utente sul link intercetto l'evento e invio una richiesta ajax a process.php inviando l'url della pagina, process.php estrae il title ed il contenuto del div principale ("idContainer") e me li invia come array (json), dopodichè aggiorno la pagina SENZA refresh.
Grazie a tutti e alla prossima
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
@Domenico_Falco1
Apri una discussione tutta tua!
È sempre meglio sia per te che avrai più risposte e più mirate che per l'autore di questa discussione!!
Ricorda però che per postare codice PHP non devi usare il tag
code.gif
ma devi usare il tag
php.png

Grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
K [risolto] passaggio variabile a pagina php con ajax Ajax 6
G [RISOLTO] Passaggio parametri a php Ajax 3
C [RISOLTO]Inserimento variabile php in input html PHP 20
moustache [RISOLTO] SQL PHP IIS PHP 8
L update tabelle in php mysql [risolto] PHP 6
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
C [RISOLTO][PHP] Errore di sintassi PHP 8
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15
Zea [PHP] RISOLTO - creare link con il risultato dell'interrogazione db PHP 1
A [PHP] [RISOLTO]Compilazione campi form da record db PHP 3
A [PHP] [RISOLTO] Modifica record db da form PHP 11
G [PHP][RISOLTO] Include/Require non funzionante PHP 9
C [PHP] RISOLTO - Eliminare elementi duplicati da array multidimensionale PHP 1
G [RISOLTO][PHP] Call to a member function num_rows() on a non-object PHP 9
U [PHP - RISOLTO] Tabella dinamica: colonne selezionate da checkbox PHP 40
CristianB72 [RISOLTO] [PHP] Istruzione "if" non funziona PHP 6
fabryx [PHP] RISOLTO: Download file da web e trasferimento su server PHP 2
fabryx [PHP]RISOLTO: Parsing xml nodi con caratteri speciali PHP 1
CristianB72 [RISOLTO][PHP] preg_match di un array PHP 7
G [RISOLTO][PHP] Estrapolare dati da Tabella PHP 11
A [RISOLTO]Errore caricamento file php PHP 21
coccobil [PHP] RISOLTO -Recupare valore data che soddisfa certi requisiti da array PHP 3
fabryx [PHP]RISOLTO: Trasformare righe in colonne assegnando singole variabili PHP 10
fabryx [PHP]RISOLTO: eliminazione riga con singolo valore duplicato in array PHP 19
elpirata [RISOLTO]Stampare giorno della settimana in tabella php PHP 6
elpirata [PHP] [RISOLTO] Stampare classe css in base al risultato della query PHP 6
elpirata [Risolto] Gestione Prenotazioni script php PHP 25
J [risolto] Trasformare la seguente classe PHP PHP 2
E [risolto] win 8.1 + IE11 le sessioni PHP non fuonzionano correttamente PHP 7
N [RISOLTO] Mostrare a video le checkbox selezionate con PHP e MySQL PHP 4
otto9due [risolto] Problema sessioni php e login PHP 5
G [risolto] Creazione file excel con PHP PHP 3
S [risolto] Aiuto: ciclo php ( for / while). popolare select dinamicamente da array id. PHP 9

Discussioni simili