Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32
  1. #1

    Eseguire Query senza refresh pagina

    https://www.booking-lagodigarda.it/a...o-di-garda.php In questa paginetta ho caricato tramite query sql i dati degli hotel sulla parte centrale e località e numero di stelle sulla sidebar di sinistra.
    La cosa che devo fare è il funzionamento dei filtri di sinistra senza ricaricare la pagina. Ad esempio se clicco su Bardolino devono comparire solo hotel di Bardolino, se clicco su 1 stella devono comparire solo hotel a 1 stella. So scrivere query che facciano questo, quello che mi interessa è come fare ad eseguire questo quando c'è il click dell'utente su una select movimentando la parte centrale della pagina senza ricaricare la pagina. Mi servirebbero consigli o un link pagina dove c'è scritto come fare questa cosa.

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    AJAX

  3. #3
    Quote Originariamente inviata da Walessio Visualizza il messaggio
    AJAX
    Ciao, come da te suggerito, ho studiato AJAX su Html.it e ho iniziato a scrivere codice:
    codice HTML:
    <select id="citta" name="citta" class="wpas-select form-control" onchange="vislocal(this.value)"> <option value="0"> Selezionare localita </option>
    codice:
    <scripttype="text/javascript">            function vislocal(localita){
                    var xmlhttp = new XMLHttpRequest();
                    xmlhttp.open("GET", "alloggi-lago-di-garda.php?q=" + localita, true);
                    xmlhttp.send();
                }
    
    </script>
    Codice PHP:
    //visualizzo filtro localita    $querylocspec = "Select nomeHotel,descrizione from lista_hotel,info_hotel where lista_hotel.idHotel = info_hotel.idHotel and locazione ='" + $_GET["localita"] + "'; ";    $resultlocspec = mysqli_query($con,$querylocspec);    while ($rowresultlocspec = mysqli_fetch_assoc($resultlocspec)){        ?>                             <div class="eintrag">              <div class="media">              <div class="media-left">                <img src="images/hotel1.jpg" alt="hotel1" width="400px" height ="300px" >                                             <h4><?php echo $rowresultlocspec["nomeHotel"]; ?></h4>                                    <?php echo $rowresultlocspec["descrizione"]; ?>                                       </div>                    </div>              </div>    <?php    }//chiusura while
    La pagina èhttps://www.booking-lagodigarda.it/a...o-di-garda.php .Quando vado a cliccare sulla select non succede niente, sull'URL non viene visualizzato niente. Dove è l errore?

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    Visitando la pagina noto che c'è scritto onchange="vislocal()" che è diverso dal tuo esempio.
    Da console di chrome risulta che la chiamata parte ma invece di spedire il valore selezionato spedisce l'elemento html.
    Controlla anche tu con la console di chrome (CTRL+SHIFT+J) -> Network -> filtra XHR.
    Inoltre visto che sei alle prime armi prendi in considerazione di usare jQuery che consente di gestire le chiamate ajax in modo semplice e cross-browser.

    Bye

  5. #5
    Quote Originariamente inviata da Walessio Visualizza il messaggio
    Visitando la pagina noto che c'è scritto onchange="vislocal()" che è diverso dal tuo esempio.
    Da console di chrome risulta che la chiamata parte ma invece di spedire il valore selezionato spedisce l'elemento html.
    Controlla anche tu con la console di chrome (CTRL+SHIFT+J) -> Network -> filtra XHR.
    Inoltre visto che sei alle prime armi prendi in considerazione di usare jQuery che consente di gestire le chiamate ajax in modo semplice e cross-browser.

    Bye
    Si. Avevo cambiato e volevo recuperarlo tramite id. Comunque adesso dovrebbe essere adesso vislocal(localita), la mia intenzione è di recuperare il valore che viene cliccato

  6. #6
    Allora Ale. Ho visto che la richiesta è stata inviata, ho aggiunto anche un altro parametro. Solo che non mi viene letta dal codice PHP. Dov'è l errore?

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    allego esempio di chiamata ajax fatta dalla tua pagina

    codice:
    alloggi-lago-di-garda.php?q=Bardolino&localbool=1
    in quella pagina php, leggi i valori con
    Codice PHP:
    $_GET["q"
    e
    Codice PHP:
    $_GET["localbool"
    ?

    e poi occhio che la console riporta un errore javascript:
    codice:
    ajax is not defined
    in riga 74
    Ultima modifica di Walessio; 17-05-2018 a 12:03 Motivo: info mancanti

  8. #8
    Quote Originariamente inviata da Walessio Visualizza il messaggio
    allego esempio di chiamata ajax fatta dalla tua pagina

    codice:
    alloggi-lago-di-garda.php?q=Bardolino&localbool=1
    in quella pagina php, leggi i valori con
    Codice PHP:
    $_GET["q"
    e
    Codice PHP:
    $_GET["localbool"
    ?

    e poi occhio che la console riporta un errore javascript:
    codice:
    ajax is not defined
    in riga 74
    Ecco le righe PHP:
    Codice PHP:
    $localb =$_GET["localbool"];  $localita =$_GET["q"];  echo "loc".$localita."bool".$localb
    Quell'errore non c'è più, come vedi sulla pagina ho provato a stampare i valori che vengono fuori dalla XHR ma ancora nulla.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    dunque,
    la pagina richiamata non fa altro che richiamare sè stessa con dei parametri in query string, la risposta è il codice HTML della pagina che si sta guardando.
    Tanto per cominciare la pagina richiamata via ajax dovrebbe essere un'altra così da separare meglio i compiti, poi essa dovrebbe restituirti solo ed esclusivamente i dati che devi cambiare nella pagina principale, magari in formato json che è comodo, leggero, leggibile e facile da elaborare.
    Farsi restituire l'intero codice HTML di una pagina per cambiarne solo una parte è utile come fare un mutuo per mille euro quando ne devi spendere solo dieci, non so se rendo l'idea

  10. #10
    Quote Originariamente inviata da Walessio Visualizza il messaggio
    dunque,
    la pagina richiamata non fa altro che richiamare sè stessa con dei parametri in query string, la risposta è il codice HTML della pagina che si sta guardando.
    Tanto per cominciare la pagina richiamata via ajax dovrebbe essere un'altra così da separare meglio i compiti, poi essa dovrebbe restituirti solo ed esclusivamente i dati che devi cambiare nella pagina principale, magari in formato json che è comodo, leggero, leggibile e facile da elaborare.
    Farsi restituire l'intero codice HTML di una pagina per cambiarne solo una parte è utile come fare un mutuo per mille euro quando ne devi spendere solo dieci, non so se rendo l'idea
    Ho capito perfettamente quello che dici. ora la pagina che uso per la chiamata è returnlocalita.php. Adesso per far tornare i valori sulla pagina principale (alloggi-lago-di-garda.php) come devo fare? Può postarmi codice o un link dove vedere questo passaggio?

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.