Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2019
    Messaggi
    4

    Form PHP che indirizza a pagine diverse a seconda dei valori scelti

    Buonasera, mi sono appena iscritto qui sul forum, sono Luigi da Napoli, e il mio problema Ŕ il seguente:
    ho fatto due semplici pagine in php, un form, con degli input, che restituisce un'altra pagina in cui viene semplicemente fuori un testo con le variabili provenienti dal form, e fin qui tutto ok. Il problema che non riesco a risolvere, essendo quasi a secco di php, Ŕ indirizzare quel form su pagine differenti a seconda di un determinato valore inserito in un input.
    Pi¨ chiaro forse se faccio un esempio.
    Nel forma io vado a impostare tre input: nome, cognome, telefono e ad esempio una domanda, dove seleziono da un men¨ a tendina la risposta.
    Nella pagina successiva, generata da form tramite un submit, io dovrei riuscire a far aprire una pagina piuttosto che un'altra, o un'altra ancora, a seconda della risposta slezionata nel form.
    Spero di essere stato il pi¨ chiaro possibile.

    Grazie mille.
    Luigi.

  2. #2
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Ciao mrboh78,

    io risolverei usando Javascript/ajax cosý da indirizzare l'utente alla pagina in base alla scelta effettuata dal form.

  3. #3
    Quote Originariamente inviata da lukezz Visualizza il messaggio
    Ciao mrboh78,

    io risolverei usando Javascript/ajax cosý da indirizzare l'utente alla pagina in base alla scelta effettuata dal form.
    A mio avviso la strategia corretta Ŕ utilizzare gli attributi formaction formmethod e colleghi del tag <button type="submit">, senza nessun bisogno di chiamare in causa javascript o ajax!

    In realtÓ questo Ŕ anche pi¨ corretto dal punto di vista della ergonomia: la veritÓ Ŕ che una maschera che pu˛ portare a tre diverse meschere successive, dovrebbe farlo con dei bottoni, che chiariscono che stai facendo tre operazioni diverse e non con un solo bottone che sembra indicare che l'operazione successiva sarÓ sempre la stessa...

    Se proprio vuoi che la scelta sia basata su una select drop down, almeno reagisci al cambio di valore della select cambiando l'attributo formaction del singolo tasto submit e basta...
    Ultima modifica di Shores; 06-10-2019 a 14:08
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2019
    Messaggi
    4
    Ciao, grazie mille per le risposte, spiegandomi meglio per˛, io non ho bisogno di aprire pi¨ pagine con un solo button, ma una sola che mi restituisca un testo piuttosto che un altro, nella mia fattispecie sono 8 variabili, alla selezione di un determinato valore selezionato da un men¨ a tendina.
    Per adesso ho risolto in modo molto arcaico inserendo nella pagina generata la variabile relativa al men¨ a tendina in oggetto, e per ogni elemento del men¨ a tendina vado a scrivere il testo che voglio che compaia nell' option value, risposto qui un breve esempio che forse Ŕ meglio.

    codice:
    <select name='opzione'>
        <option value="" selected="selected">- SELEZIONA -</option>
        <option value="<p>Titolo Opzione 01</p>
    <p>Testo Opzione 01</option>
        <option value="<p>tiolo opzione02</p>
    <p>Testo opzione 02</option>
    E vado poi a richiamarlo nella pagina inserendo la variabile.

    Grazie
    Luigi

  5. #5
    Quote Originariamente inviata da mrboh78 Visualizza il messaggio
    Ciao, grazie mille per le risposte, spiegandomi meglio per˛, io non ho bisogno di aprire pi¨ pagine con un solo button, ma una sola che mi restituisca un testo piuttosto che un altro, nella mia fattispecie sono 8 variabili, alla selezione di un determinato valore selezionato da un men¨ a tendina.
    Per adesso ho risolto in modo molto arcaico inserendo nella pagina generata la variabile relativa al men¨ a tendina in oggetto, e per ogni elemento del men¨ a tendina vado a scrivere il testo che voglio che compaia nell' option value, risposto qui un breve esempio che forse Ŕ meglio.

    codice:
    <select name='opzione'>
        <option value="" selected="selected">- SELEZIONA -</option>
        <option value="<p>Titolo Opzione 01</p>
    <p>Testo Opzione 01</option>
        <option value="<p>tiolo opzione02</p>
    <p>Testo opzione 02</option>
    E vado poi a richiamarlo nella pagina inserendo la variabile.

    Grazie
    Luigi
    Questo che hai scritto Ŕ ASSOLUTAMENTE errato, e anche PERICOLOSISSIMO.

    E' errato perchŔ la value di una option non deve MAI contenere del codice HTML, Ŕ vietato.
    E' pericolosissimo perchŔ molto probabilmente tu starai inserendo nella pagina (magari con un echo $_POST("opzione")) quel codice che hai messo nella value della option, aprendo la porta a molti diversi vettori di attacco.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2019
    Messaggi
    4
    Perfetto, o meglio, molto male.
    Come posso ovviare quindi a questo?
    Premesso che comunque queste sono pagine che devono andare solo su una intranet.

    Nella pagina io comunque la richiamo semplicemente inserendo la variabile assegnata, $var1, che mi restituisce il testo che immetto nel campo "option value".

    Grazie.
    Luigi

  7. #7
    Perdonami, ma per aiutarti meglio, potresti postare almeno il codice della maschera, se non magari anche quello del php che gestisce i dati in arrivo dalla maschera?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2019
    Messaggi
    4
    Ciao,
    questa Ŕ la parte del codice inserita nella pagina del form:

    codice:
    <form method="POST" name="registrazione" target="_blank">
    <div class='opzione'>OPZIONE:<br />
    <div id='description0' style='display: ;' >&nbsp;</div>
    <div id='description1' style='display: none;'>
    <select name='opzione01'>
    	<option value="" selected="selected">- SELEZIONA -</option>
    	<option value="<p>OPZIONE 01</p>
    <p>TESTO OPZIONE 01</p></option>
    	<option value="<p>OPZIONE 02</p>
    <p>TESTO OPZIONE 02</p></option>
    	<option value="<p>OPZIONE 03</p>
    <p>TESTO OPZIONE 03</p></option>
    	</select>
    </div>
    </form>
    Mentre questa Ŕ la parte del codice della pagina php che viene restituita all'invio del form:

    codice:
    <?php
    
    
    $var1= $_POST['opzione'];
    
    
    echo"
    <form action='' method=''>
    
    
    <p class='opzione'>$var1</p>
    </form>"
    
    
    ;
     
     
    ?>
    Logicamente ho ripulito da tutte le altre cose che non occorrono tipo div e altri campi che funzionano.

    Grazie Luigi

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    676
    Forse ho capito male, ma se tu hai un form e vuoi che nella pagina che ti si apre dopo il submit tu abbia valori diversi in corrispondenza ad input diversi non devi fare nulla di troppo strano, e non ti servono pi¨ pagine chiamiamole di destinazione.


    Basta che nella pagina php che gestisce il submit del form tu usi un if o uno switch per visualizzare contenuti diversi in base ai dati che ti vengono inviati dal form.


    codice:
    Pagina HTML
    
    
    <form action="/submit.php" method="post">
      <select name="opzioni">
        <option value="opzione1">opzione1</option>
        <option value="opzione2">opzione2</option>
        <option value="opzione3">opzione3</option>
      </select>
    </form>
    
    
    Pagina submit.php
    
    
    <?php
    $opzione = $_POST['opzione']; // qui dovresti usare filter_input() io non lo faccio per semplificare
    switch ($opzione) {
        case 'opzione1':
            echo 'Contenuti per opzione1';
            break;
        case 'opzione2':
            echo 'Contenuti per opzione2';
            break;
        case 'opzione3':
            echo 'Contenuti per opzione3';
            break;
    }
    ?>

    p.s. occhio che nel codice che hai scritto sopra ci sono diversi errori.

Tag per questa discussione

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.