Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    problema refresh e tasto 'indietro'

    Ciao a tutti, ho una domanda che per un esperto di javascript sarà semplice... non per me che non lo conosco bene!
    Ho 'pagina_1.php' con un form, nel form ho due select 'dinamiche' ma con dei valori fissati a mano: nella prima select faccio la prima scelta ed in base a quella scelta la seconda mi si riempie delle opzioni relative.
    Tutto ok...
    Vado alla pagina successiva 'pagina_2.php' ed in base ad altri input posso andare avanti nel sito e vedere a video i risultati di una lettura di directory (ma a voi questa parte non interessa...).

    PROBLEMA:

    Se uno va alla 'pagina_2.php' e torna indietro (col tasto del browser) alla 'pagina_1.php', si ritrova con la prima select inserita (con la scelta che aveva selezionato), ma nella seconda select non c'è nulla e non c'è modo di selezionarla. L'unica maniera è quella di cliccare su 'aggiorna - F5' e ricaricare daccapo la pagina.

    DOMANDA:

    E' possibile fare in modo che tornando indietro col tasto del browser possa dare un 'refresh' automatico? Oppure anche ricompilare pari pari le due select??

    Mi metto il codice della pagina_1.php:
    codice:
    <head>
    <script type="text/javascript">
    <!--
    /*
    Script  tratto dal libro "JavaScript and DHTML Cookbook" - Capitolo 8-13
    Pubblicato da O'Reilly & Associates
    Copyright 2003 Danny Goodman
    Riprodurre questa nota per qualunque riutilizzo del codice.
    */
    var armatore = new Object()
    armatore["m.e."] = [{value:"bice", text:"bice"},
    {value:"lml", text:"lml"}];
    armatore["fin"] = [{value:"isam", text:"isam"},
    {value:"isat", text:"isat"},
    {value:"isbr", text:"isbr"},
    {value:"isco", text:"isco"},
    {value:"mess", text:"mess"}];
    function setCities(chooser) {
    var newElem;
    var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
    var cityChooser = chooser.form.elements["ID_nave"];
    while (cityChooser.options.length) {
    cityChooser.remove(0);
    }
    var choice = chooser.options[chooser.selectedIndex].value;
    var db = armatore[choice];
    newElem = document.createElement("option");
    newElem.text = "Seleziona...";
    newElem.value = "";
    cityChooser.add(newElem, where);
    if (choice != "") {
    for (var i = 0; i < db.length; i++) {
    newElem = document.createElement("option");
    newElem.text = db[i].text;
    newElem.value = db[i].value;
    cityChooser.add(newElem, where);
    }
    }
    }
    </head>
    e la select è:
    codice:
    <select name="ID_armatore" onChange="setCities(this)" class="campiform">
                          <option value="" selected="selected"> Seleziona... </option>
                          <option value="m.e."> m.e. </option>
                          <option value="fin"> fin </option>
                        </select>
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  2. #2
    up...
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: problema refresh e tasto 'indietro'

    Originariamente inviato da chef
    E' possibile fare in modo che tornando indietro col tasto del browser possa dare un 'refresh' automatico?
    no, tornare indietro non e' diverso da caricare la prima volta
    per evitare un loop di refresh infiniti dovresti memorizzare in cookie la prima visita
    e non e' il caso di scomodare i cookie x questo

    semplicemente, come gia' mi e' capitato di rispondere a quesito identico (forse postato proprio da te qualche settimana fa) richiama onload sul body la funzione che riempie la seconda select
    non cambia nulla tra primo caricamento e back perche:

    - si basa sul selectedIndex della prima, che tu confermi essere corretto ritornando sulla pagina
    var choice = chooser.options[chooser.selectedIndex].value;

    - non fa nulla se l' option selezionata e' la prima
    if (choice != "") {...}

    quindi aggiungi
    <body onload="setCities(document.nomeForm.ID_armatore)">

    ciao

  4. #4
    Ciao e grazie tante per la tua risposta.
    Domani mattina metto le mani alla paginetta web ed inseriscola modifica.
    Cmq sia TI RINGRAZIO!!

    Ciao Carlo

    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

  5. #5
    GRAZIE!!!!!!

    Ho provato e tutto funziona...

    :rollo: :rollo: :rollo:
    *** You shouldn't compare yourself to the best others can do but to the best you can do ***

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.