Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    mantenere select selezionata dopo il submit

    Ciao a tutti...
    dunque ho una pagina con due form ogni form contiene una select, i valori vengono passati con metodo POST alla pagina STESSA tramite un campo hidden. I form sono completamente separati non annidati..
    Succede che quando faccio il submit di uno dei due form ad esempio il secondo, praticamente la select contenuta nel primo form si "azzera" con le relative modifiche del caso.
    C'è un modo per mantenere la select anche dopo aver fatto il submit?

    Grazie

    ciao
    paolo

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Risposta breve: no. Semplicemente perché hai due form e quindi il form di cui non fai il submit è un ammasso semi inutile di codice html di cui POST non sa che farsene.

    Risposta media: sì, tramite qualche acrocchio... ad esempio, invece di fare il submit verso la stessa pagina potresti fare il submit verso un frame nascosto.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    se ho ben capito, io di solito faccio così: supponi che hai i due form A e B ognuno con un select. Scegli una voce dal select A e poi dal select B e a questo punto la pagina viene ricaricata.
    Per verificare se una voce del select è stata selezinata uso la seguente funzione PHP:

    Codice PHP:
    function selected($val1$val2) {
      if (
    trim($val1)==trim($val2)
        return 
    " selected=\"selected\"";
      else
        return 
    NULL;

    quando poi scrivo il select utilizzo quanto segue, sia per A che per B):

    Codice PHP:
    <?php
      
    // $vociA e $vociB sono due array che contengono le OPTION dei due select
    <select name="A" size="1">
    <?
    php
      
    for ($i=0$i<count($vociA); $i++) {
         echo 
    "<option value=\"".$vociA[$i]."\"".selected($_POST['A'], $vociA[$i]).">".$vociA[$i]."</option>";
      }
    ?>
    </select>
    in pratica per ogni OPTION del select uso la funzione SELECTED. Se il valore passato dal SUBMIT è uguale al valore corrente dell'array allora scriverà il parametro SELECTED="SELECTED" per visualizzarlo come parametro di default.

  4. #4
    Accidenti, non credevo fosse cosi complicato...
    ..submit verso frame nascosto???
    Non ho la piu pallida idea di cosa sia, vorrai dire che me lo andro a studiare..
    ..se hai qualche link a qualche discussione a riguardo grazie mille visto che a me la funzione cerca non funge...

    Ciao e grazie

    paolo

  5. #5
    X Emulman

    Grazie, penso di aver capito il concetto, mo me lo vado a provare...vi faro sapere..
    grazie ancora
    paolo

  6. #6
    Riporto su questo post...
    Ho ancora lo setsso problema, non sono riuscito a risolverlo:
    2 form nella stessa pagina e 2 pulsanti di submit.

    cambio la select del form 1, faccio il submit1 e si carica un'immagine in 1 .
    poi cambio la select del form 2, faccio il submit2 e si carica un'immagine in 2 ma l'immagine in 1 sparisce in quanto la pagina è stata ricaricata. Io voglio che l'immagine in 1 rimanga (e viceversa).

    Qualche altra soluzione?????

    grazie

    paolo

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Si, fai un unico form con due pulsanti, è più facile
    Separa i dati con il tag html "fieldset" per dare una distinzione concettuale
    Faccio un esempio banale con due campi testo che devono essere riportati in testa ad ogni "fieldset" aggiornando solamente quello relativo al pulsante premuto
    Codice PHP:
    <?php
    $scelta1 
    "";
    $scelta2 "";
    if(isset(
    $_POST["invio1"]))
    {
        
    $scelta1 $_POST["scelta1"];
        
    $scelta2 $_POST["lastscelta2"];
    }
    if(isset(
    $_POST["invio2"]))
    {
        
    $scelta2 $_POST["scelta2"];
        
    $scelta1 $_POST["lastscelta1"];
    }
    ?>
    <form action="<?php echo $_SERVER["PHP_SELF"]?>" method="post">
        <fieldset>
            

    Ultima scelta = <?php echo $scelta1 ?></p>
            <input type="hidden" name="lastscelta1" value="<?php echo $scelta1 ?>" />
            <input type="text" name="scelta1" value="" />

            <input type="submit" name="invio1" value="Invia" />
        </fieldset>
        <fieldset>
            

    Ultima scelta = <?php echo $scelta2 ?></p>
            <input type="hidden" name="lastscelta2" value="<?php echo $scelta2 ?>" />
            <input type="text" name="scelta2" value="" />

            <input type="submit" name="invio2" value="Invia" />
        </fieldset>
    </form>

  8. #8
    accidenti non ci sono ancora, il mio problema è che in un form ho 4 select e un radio mentre nell'altro piu select...
    il concetto è lo stesso o cambia qualcosa dovendo memorizzare piu valori?
    Penso che non cambi niente con piu valori, ma allora perchè non ci riesco?????
    Ciao ciao
    paolo

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Visto che hai fatto un post del form e che le variabili sono state trasmesse, salvale in sessione e riscrivi tramite php i valori del primo form.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  10. #10
    Cosa intendi per salvale in sessione?
    Salvo il loro valore e imposto quel valore come se fosse il valore di ciascuna select cosi quando carica la pagina, il valore della select è quello vecchio??
    Grazie
    Paolo

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.