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

    Aiuto per passaggio dati

    Ciao a tutti,
    Avrei la necessità di passare dei dati da una pagina all'altra di un questionario che sto realizzando... Utilizzando il metodo post e creando un form la cosa si risolve abbastanza facilmente, ma il mio problema sta nel fatto che dovrei passare i dati nelle due direzioni!

    Mi spiego meglio, ogni domanda ha una pagina a sè stante con i pulsanti Avanti ed Indietro. Dovrei passare i dati alla pagina successiva (per poi memorizzarli nel db con php) sia in avanti che indietro, cioè l'utente dovrebbe poter premere sia avanti che indietro ed io dovrei salvare nel db i dati sia che venga premuto avanti che indietro. Però il form mi permette di specificare una sola action (se non erro) e di conseguenza un solo pulsante submit...

    C'è un qualche metodo alternativo per passare i dati da una pagina all'altra??? O una qualche soluzione alternativa al mio problema???

    Grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    2

    non so

    da quel che so anch'io il form ti permette di specificare una sola action. esiste credo un comando multiaction ma non lo so usare, e non so nemmeno se può esser utile al tuo caso, che è anche il mio


    Amelia

  3. #3
    Grazi mille per la risposta!
    Il questionario me lo sto scrivendo anche io tutto riga per riga (ogni cosa che penso è un problema in più che mi si pone davanti, ma una estrema soddisfazione risolverlo!!!)

    Cercherò di informarmi un pochino sul multiaction! Non ho capito benissimo come fare, ma vedrò di capirne qualcosa!!!

    Ciao e grazie!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    2

    Accidentaccio

    guarda, io ho praticamene lo stesso problema.. se qualcuno me lo risolve gli lavo i piatti per un'anno!!!

    Amelia

  5. #5
    Una soluzione l'ho trovata, ma è molto complicata.
    In realtà non è così complicata da realizzare quanto da capire epr cui cercherò di essere il più chiaro possibile.
    Premetto che questa soluzione si avvale di javascript e NON può funzionare con javascript disabilitato pertanto prendetela con le dovute distanze...

    Per ogni form abbiamo un'azione (action) e un invio (submit).
    Crreiamo il nostro form con tutti i nostri bei campi carini carini e ben formattati...
    Quindi andremo a creare il tasto submit e gli daremo il nome AVANTI.

    Ora il magheggio!

    Creiamo un altro input type=submit, ma stavolta assegnamo all'evento onclick una nostra funzione creata all'uopo e lo chiamiamo INDIETRO

    Sia mioForm l'id e il nome del form e sia azione1.php la pagina relativa alla sua azione.
    Codice PHP:
    var indietro=function(){
    ilMioForm=getElementById("mioForm")
    ilMioForm.action="./azione2.php";
    ilMioForm.submit();
    return 
    false;

    Infine assegnamo all'evento onclick la nostra funzione e il gioco è fatto.
    Ovviamente ogni pagina del questionario deve prevedere i vari $_GET per la pagina precedente e successiva, quindi facciamo attenzione a dare ad ogni pagina nomi diversi ai campi dei vari form.

  6. #6
    La soluzione di aviaria è ottima. Io vorrei proporne una alternativa che non richiede l'uso di javascript.

    Ammettiamo che la pagina della domanda attuale si chiami domanda2.php
    Il meccanismo consiste nel definire un elemento nel form che determini la direzione del post (indietro o avanti). Il submit del form avverrà sulla stessa pagina in cui si è (domanda2.php). A questo punto il codice lato server intercetterà i valori del form e se trova il textbox valorizzato, invece di mostrare la pagina, recupererà il testo all'interno, la direzione in cui andare e farà di conseguenza:

    codice:
        <form action="domanda2.php" method="get">
            <fieldset>
                <legend>Domanda numero 2</legend>
                <input type="text" id="domanda" />
                <label for="indietro">Indietro</label>
                <input type="radio" name="direzione" id="indietro" value="indietro" />
                <label for="avanti">Avanti</label>
                <input type="radio" name="direzione" id="avanti" value="avanti" checked="checked" />
                <input type="submit" /> 
            </fieldset>
        </form>
    Non conosco la sintassi del php, ti scrivo il codice a mo di analisi:

    codice:
    Se il textbox contiene testo
      {
         memorizzo il testo
         memorizzo quale valore ha l'input con name "direzione"
         se è = "avanti" -> vado a domanda3.php?valoredomanda2=iltestoneltextbox
         se è = "indietro" -> vado a domanda1.php?valoredomanda2=iltestoneltextbox
      }
    Altrimenti
      {
         Visualizzo la pagina senza fare niente
      }
    Ovviamente non è comodo come avere 2 pulsanti (c'è 1 click in più da fare, ma solo in caso si debba andare indietro, in quanto "avanti" è selezionato di default) ma ti permette di avere il form funzionante anche con javascript non abilitato.

    Ciao

  7. #7
    Grazie mille per le risposte!!!
    Avevo pensato anche ad un'altra soluzione, forse però meno elegante delle vostre proposte...
    Creare una pagina intermedia dalla quale salvo i dati nel db e dalla quale faccio direttamente un redirect alla pagina successiva o precedente! Devo perciò passare come parametro anche la pagina alla quale voglio andare (se la precedente o la successiva) .
    Tanto non credo che ci impieghi molto a scrivere i dati in Mysql e fare il redirect diretto alla pagina precedente o successiva...

    Grazie a tutti!! Ieri sera non sapevo proprio a che santo rivolgermi...

  8. #8
    Anche la tua soluzione non è malvagia.
    In ogni caso hai un bel da fare

  9. #9
    Originariamente inviato da snieco
    Grazie mille per le risposte!!!
    Avevo pensato anche ad un'altra soluzione, forse però meno elegante delle vostre proposte...
    Creare una pagina intermedia dalla quale salvo i dati nel db e dalla quale faccio direttamente un redirect alla pagina successiva o precedente! Devo perciò passare come parametro anche la pagina alla quale voglio andare (se la precedente o la successiva) .
    Tanto non credo che ci impieghi molto a scrivere i dati in Mysql e fare il redirect diretto alla pagina precedente o successiva...

    Grazie a tutti!! Ieri sera non sapevo proprio a che santo rivolgermi...
    Praticamente è la mia soluzione con una pagina intermedia di mezzo, che però in realtà non ti serve. Leggi bene il mio metodo, puoi fare tutto con una pagina unica.

  10. #10
    In realtà è praticamente la tua soluzione, esattamente!!!
    Forse l'unica differenza è che riesco a mantenere i due pulsanti...

    Speriamo bene!!!! Poi mi metterò al lavoro!!!

    Ciao ciao e grazie a tutti!!!

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.