Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    13

    non rieseguire select al ritorno da history.back()

    ciao a tutti,
    vi espongo il problema: ho una pagina php divisa in due parti, nella prima parte c'è una form di ricerca in cui sono presenti 4 combobox prepopolati da query sul db mysql e dai tasti di tipo submit e reset. Le combobox servono per selezionare i filtri per la ricerca che viene azionata premendo il relativo tasto submit della form i cui risultati sono visualizzati nella seconda parte della pagina, nella stessa pagina del form, subito dopo la form (con un require di un'altra pagina). Ora, una volta visualizzati a video i risultati della ricerca è possibile vedere il dettaglio di un record selezionando un campo (href) con un click che rimanda ad un'altra pagina php (il tutto sempre nella stessa finestra del browser). In questa pagina di dettaglio ho messo un link in href che permette di tornare indietro (history.back()), purtroppo quando torno indietro la pagina che conteneva i dati rifa la query iniziale. E' possibile evitare che al ritorno nella pagina dei risultati non sia rieseguita la query ? oppure dovrei visualizzare i dati un una finestra separata del browser (_target) ? Non so se sono stato chiaro, aspetto vostri suggerimenti. Grazie 1000,
    ciao
    gianni

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    qualche a capo renderebbe il testo più facile da leggere XD

    comunque o carichi i dati via ajax in un div all'interno della prima pagina o fai aprire la pagina altrove con un target _blank ed eviti il problema...
    io onestamente sono contrario ai target _blank, quindi ti suggerirei di usare ajax.

    ma qualsiasi cosa accada non usare un frame XD

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    13
    non ho tempo per imparare una nuova tecnologia, nel caso conosci qualche buon tutorial ?

    In generale, non è possibile in PHP impedirgli di eseguire le istruzioni di select già eseguite su una pagina quando si ritorna su quest'utlima ?

    grazie

    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    l'unico modo che mi viene in mente è far sì quando apri la seconda pagina di mettere una variabile in cookie/sessione e quando carichi la prima controllare se questa variabile è presente e nel caso non effettuare la ricerca.

    al momento è l'unico workaround che mi viene in mente.

    ma non puoi evitare in alcun modo il pop up di richiesta di reinvio del form, quello è un comportamento del browser, non del codice.

  5. #5
    Prova ad aggiungere all'inizio della tua pagina una roba del genere (non l'ho testata, qunidi non mi assumo responsabilità ):

    Codice PHP:
    <?php
    session_start
    ();
    if (isset(
    $_POST) && sizeof($_POST)) {
        
    $_SESSION array_merge($_SESSION$_POST);
        
    session_write_close();
        
    header('location:'.$_SERVER['HTTP_REQUEST']);
        exit;
    }

    # altro codice ...

    ?>
    e poi gestisci i campi del form prendendoli dalla variabile $_SESSION invece che da $_POST.
    Michele
    King Of The Kill

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.