Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,471

    come mantenere dinamicamente un valore scelto da una select


    Salve a tutti
    forse il titolo non è molto chiaro, vi spiego lo scenario


    Ho un sito di vacanze per una destinazione turistica e la prima operazione che l'utente dovrà fare nel modulo del motore di ricerca è selezionare l'aeroporto di partenza.


    In base alla scelta carico e mostro le date disponibili di partenza da quell'aeroporto


    In pratica mostro la select che mi interessa, in questo modo:


    codice:
    <select name="arrivo_napoli" class="form-control">
    <select name="arrivo_milano" class="form-control">
    e cosi' via per altri aeroporti

    Nella pagina cerca.php devo portare la data scelta e non so se mi conviene portarle tutte (anche l'aeroporto non selezionato), oppure portare solo quello selezionato.
    In pratica non so se portare qualcosa tipo
    codice:
    $arrivo_napoli=$_POST['arrivo_napoli'];
    $arrivo_milano=$_POST['arrivo_milano'];

    oppure usare if isset


    Diciamo che la data riesco a portarla senza problemi nella pagina di ricerca.
    Il problema è che qui ho un motore di ricerca che affinerà i risultati dove potranno scegliere le stelle, il trattamento, e qualche altra cosa).


    Quando clicco su "filtra" e quindi invio il modulo, perdo la data selezionata e quindi non mi da risultati.


    Come mai accade questo?
    Se nel pannello di controllo abilito soltanto una città di partenza non ho alcun problema.


    Sapreste aiutarmi a capire come memorizzare la data scelta dalla pagina del motore di ricerca?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    589
    Non ci ho capito quasi niente e secondo me fai della confusione.
    Ma in ogni caso, non ti basta usare le sessioni e salvare li le variabili che ti servono durante tutta la sessione?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    residenza
    Sardegna
    Messaggi
    308
    Nel campo della data basta passare la data dalla pagina di origine alla destinazione tramite POST e controllare il POST

    codice:
    <input name="theDate" value="<?php if isset($_POST['theDate']){ echo($_POST['theDate']); } ?>">

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2005
    residenza
    Sardegna
    Messaggi
    308
    Ho appena realizzato che stai usando una selezione e vuoi preimpostarla.

    Ci sono due modi per farlo. Uno richiede JavaScript, l'altro richiede che i valori nella selezione vengano creati usando PHP.

    Per PHP

    codice:
    <?php
    $date_from = strtotime("2019-01-01"); 
    $date_to = strtotime("2020-01-01"); 
    ?>
    <select id="theDate">
    <?php  
    for ($i=$date_from; $i<=$date_to; $i+=86400) { 
       echo '<option value="' . date("Y-m-d", $i) . '"';
       if ( date("Y-m-d", $_POST("thedate")) ==date("Y-m-d", $i)){echo " selected";};
       echo '>' . date("Y-m-d", $i) .'</option>';
    } 
    </select

    Con javascript devi fare qualcosa di simile

    codice:
    SelectElement("theDate", valueToSelect)
    
    function SelectElement(id, valueToSelect)
    {    
        var element = document.getElementById(id);
        element.value = valueToSelect;
    }

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,471
    Eccomi

    sembra che ho risolto facendo il controllo sul pulsante del modulo di ricerca e su quello del modulo per filtrare

    Codice PHP:
    //se il il submit chiamato "ricerca" del campo ricerca è stato inviato
    if(isset($_POST['ricerca'])){
    //se la città è napoli    
    if($citta=="2"){
    //mostro la data di partenza dall'aeroporto di napoli
            
    $arrivo=$_POST['arrivo_napoli'];
        }
    //se la città di partenza è milano, mostro la data di partenza di milano
        
    if($citta=="4"){
            
    $arrivo=$_POST['arrivo_milano'];
        }
    }
    //se il submit chiamato filtra del modulo per filtrare la ricerca è stato inciato
    if (isset($_POST['filtra'])){
    //mostro il valore "arrivo" situato in un campo nascosto del modulo per filtrare
    $arrivo=$_POST['arrivo'];

    Cosi sembra fare quello che mi serve...

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