Mantenere scelte fatte in un form

  • Creatore Discussione Creatore Discussione navajo75
  • Data di inizio Data di inizio

navajo75

Utente Attivo
16 Mar 2012
103
1
18
Salve a tutti,

ho una pagina in cui c'è un form con delle select e dei campi di testo. L' action diquesto form manda ad un'altra pagina, in cui dó la possibilità all'utente di tornare indetro, qualora le scelte adoperate non lo soddisfacessero.
Mandandolo indietro, vorrei che tornasse al form senza perdere le scelte precedentemente effettuate.
Vorrei ottenere questo risultato, utilizzando Php, ma non ho idea di come fare. Forse con le sessioni? Se si, potreste darmi qualche spunto per favore?

Grazie,
Marco
 
Fare una semplice richiesta in ajax alla pagina di controllo quindi senza usufruire di refresh o torna indietro?
 
Che sia Ajax, Javacript o Php non importa.
Posso pensare di volerlo fare in Php solo per un motovo: non dipendere cioè dalle evoluzioni future dei vari browser.
Faccio un esempio. Per ottenere ciò che voglio, solitamente utilizzavo una comodissima funzioncina javascript (javascript:history.go(-1)).
Questa volta, non so perchè, con Safari, Chrome ed Opera funziona, mentre con IE e Mozilla no.
L'unica differenza questa volta, rispetto al solito, è che l'utente che riempie il form è giá in sessione, si è cioè giá loggato; ma non vedo cosa ci possa entrare.
 
ciao
devi usare le sessioni o i cookie (io preferisco le sessioni).
ricordati che se usi le sessioni la prima istruzione deve essere session_star(); che deve venire prima di qualsiasi output html
 
una comodissima funzioncina javascript (javascript:history.go(-1)).

strano che non ti funzioni :confused:

hai provato anche con history.back() ?

HTML:
<a href="javascript:javascript:history.back()">indietro</a>

e con la freccia del browser?
 
Si criric, ho provato anche con...

HTML:
javascript:history.back()

... e non funziona.

La cosa buffa è che i due browser che mi danno problemi, IE e Mozilla Firefox, lavorano tranquillamente con la funzioncina in questione, se creo un'altra form e non sto in sessione.
So che sembra assurdo ma è così, credimi.

Comunque ho risolto utilizzando le sessioni e dunque il minimo che possa fare è postare un pò di codice a beneficio di chi possa avere la mia stessa necessità.

Pagina atti.php

PHP:
  session_start();
  $quantita = $_SESSION['quantita'];
  $titolo = $_SESSION['titolo'];
HTML:
  <form name="form_acquisto" method="post" enctype="multipart/form-data" action="riepilogo.php">
    <div id="campo_colore_carta">
        <label>
          <select name="colorecarta" id="colorecarta">
            <option value="seleziona">Colore carta</option>
            <option value="Arachide" <?php if($_SESSION["colorecarta"] == "Arachide"){echo 'selected="selected"';}?>>Arachide</option>
            <option value="Arancio" <?php if($_SESSION["colorecarta"] == "Arancio"){echo 'selected="selected"';}?>>Arancio</option>
            <option value="Azzurro" <?php if($_SESSION["colorecarta"] == "Azzurro"){echo 'selected="selected"';}?>>Azzurro</option>
            <option value="Bianco" <?php if($_SESSION["colorecarta"] == "Bianco"){echo 'selected="selected"';}?>>Bianco</option>
            <option value="Giallo" <?php if($_SESSION["colorecarta"] == "Giallo"){echo 'selected="selected"';}?>>Giallo</option>
            <option value="Grigio" <?php if($_SESSION["colorecarta"] == "Grigio"){echo 'selected="selected"';}?>>Grigio</option>
            <option value="Rosa" <?php if($_SESSION["colorecarta"] == "Rosa"){echo 'selected="selected"';}?>>Rosa</option>
            <option value="Verde" <?php if($_SESSION["colorecarta"] == "Verde"){echo 'selected="selected"';}?>>Verde</option>
          </select>
       </label>
    </div>
   <?php unset($_SESSION['colorecarta']); ?>
    <div id="campo_titolo">
      <label>
         <input name="titolo" type="text" id="titolo" value="<?php echo $titolo; ?>"/>
      </label>
    </div>
    <?php unset($_SESSION['titolo']); ?>
  </form>

Pagina riepilogo.php
PHP:
  $quantita = $_POST['quantita'];
  $_SESSION['quantita'] = $quantita;
  $titolo= $_POST['titolo'];
  $_SESSION['titolo'] = $titolo;

P.S.: criric, se vuoi, sono interessato ad approfondire il discorso della funzioncina Javascript, poichè non mi va giù che non funzioni

Grazie a tutti per lo straordinario aiuto che ricevo ogni volta in questo bel forum.
Saluti,
Marco
 

Discussioni simili