Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Form

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417

    Form

    Ho un problema:
    un form ad un certo punto avviene una domanda a cui rispondere si o no, se l'utente seleziona si si dovrebbe apre una nuova finestra con altri input in aggiunta senza interrompere il form e ritornare alla principale appena finite le nuove selezioni potendo effettuare il submit dalla principale, se si risponde no passare direttamente al pulsante submit.
    Forse ho fatto confusione ma spero mi abbiate capito.
    Grazie Luigi

  2. #2
    Eccomi!

    Allora:
    dalla tua domanda mi sembra di capire che hai un form con parte di campi compilati in una pagina principale e parte "opzionali".
    codice:
    <FORM NOME="moduloaparti" ACTION="...
    <INPUT TYPE="hidden" NAME="opzionale1" VALUE="">
    <INPUT TYPE="hidden" NAME="opzionale2" VALUE="">
    ...
    Per il pulsante "no" è sufficiente un banalissimo:
    codice:
    <INPUT TYPE="submit" VALUE="NO">
    Alla sua pressione il form parte...

    Per il pulsante "si" procedi così:
    codice:
    <INPUT TYPE="button" VALUE="SI" OnClick="window.open('altricampi.htm');">
    In "altricampi.htm" hai un altro FORM con le parti mancanti, ma senza bottone SUBMIT.
    codice:
    <FORM NOME="parteopzionale" ACTION="...
    Al posto del submit metti una cosa tipo:

    codice:
    <INPUT TYPE="button" VALUE="Conferma" OnClick="funzionetrasferimento(); window.close();">
    <SCRIPT LANGUAGE="Javascript">
    function funzionetrasferimento() {
         window.opener.document.moduloaparti.opzionale1.value=document.parteopzionale.nomecampo1.value;
         window.opener.document.moduloaparti.opzionale2.value=document.parteopzionale.nomecampo2.value;
    }
    </SCRIPT>
    Tieni presente che ho buttato il codice così, alla meno peggio...
    Ma se scendi in dettaglio, allora potrei provare a scenderci anch'io.

    Cmq questo ti dovrebbe essere sufficiente per cominciare a fare delle prove... poi sbagliando si impara!

    Ciauz!
    Salvatore De Bonis AKA Novice of Ricotta AKA NashCrash

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    ok ti ringrazio dovrebbe essere perfetto, non capisco solo l'ultimo parametro.
    Ti faccio un esempio
    apro il form:

    inserisco
    <FORM NOME="moduloaparti" ACTION="...
    inserisco i vari
    <INPUT TYPE......>
    a questo punto mi porto sulla pagina esterna
    <INPUT TYPE="button" VALUE="SI" onClick="window.open('altricampi.htm');">
    il punto è qui, quando rientro nel for principale, per completare il form ed inviarlo a regitro nel db mysql, i vari imput nel altricampi.htm vengono memorizzati da
    <SCRIPT LANGUAGE="Javascript">
    function funzionetrasferimento() {
    window.opener.document.moduloaparti.opzionale1.val ue=document.parteopzionale.nomecampo1.value;
    window.opener.document.moduloaparti.opzionale2.val ue=document.parteopzionale.nomecampo2.value;
    }
    </SCRIPT>
    ?
    se si ti faccio un esempio, se sulla pagina altricampi ho il campo (<input type="text" name="pduratames1">) e di campi ne ho molti circa 25, cosa devo scrivere in window.opener.document.moduloaparti.opzionale1.val ue=document.parteopzionale.nomecampo1.value;

    Spero di essermi spiegato meglio di prima ciao Luigi

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    417
    Ti faccio presente i problemi che ho riscontrato e pero di spiegarmi meglio:
    inizio il form
    codice:
    <form name="nav" action= "<? echo $PHP_SELF ?>" method="post">
    <tr>
       	<td><div align="right">Anno di nascita:</div></td>
       	<td align="center"><input type="text" name="annon" id ="annon" size="20"></td>
    </tr>
    ..........
    ..........
    a questo punto devo inserire il form opzionale
    per poi ritornale a questo per la chiusura
    codice:
    <input type="reset" name="reset" value="Cancella">
    <input type="submit" name="submit" value="Continua"></div></td>
    tieni presente che alla pressione di "continua" si ritorna in questa pagina per inserire una nuova persona finoall'azzeramento del contatore iniziale che può andare da 1 a cinque ed ogni volta và ad incrementare il db mysql.
    spero di essere stato chiaro.
    ho provato come mi hai detto ma non funziona, alla fine del form opzionale non ritorna al principale, inoltre no saprei come chiamare il form opzionale e che action dalre.
    grazie ancora Luigi

  5. #5
    potresti mettere i campi opzionali all'interno di un div inizialmente nascosto e posto all'interno del form principale, quindi visualizzarlo se necessario.
    In questo modo hai un solo form e meno difficolta di gestione secondo me...
    Non ho tempo di scrivere un po' di codice ma se sei pratico la mia potrebbe essere un'idea... ciao

  6. #6
    Scusa il ritardo...

    Nel form principale devi mettere tanti campi nascosti quanti sono quelli che appaiono nel form opzionale.
    codice:
    <form name="nav" action= "<? echo $PHP_SELF ?>" method="post">
    
    <INPUT TYPE="HIDDEN" NAME="pduratames1" VALUE="">
    
    <tr>
       	<td><div align="right">Anno di nascita:</div></td>
       	<td align="center"><input type="text" name="annon" id ="annon" size="20"></td>
    </tr>
    
    <INPUT TYPE="button" VALUE="SI" onClick="window.open('altricampi.htm');">
    
    .....
    
    <input type="reset" name="reset" value="Cancella">
    <input type="submit" name="submit" value="Continua"></div></td>
    in altricampi.htm fai una cosa del genere:

    codice:
    
    <FORM NAME="parteopzionale">
    Inserisci: <INPUT TYPE="text" NAME="pduratames1" VALUE="">
    
    
    <INPUT TYPE="button" VALUE="Conferma" onClick="funzionetrasferimento(); window.close();">
    
    </FORM>
    
    <SCRIPT LANGUAGE="Javascript">
    function funzionetrasferimento() {
         window.opener.document.nav.pduratames1.value=document.parteopzionale.pduratames1.value;
    }
    </SCRIPT>
    La stringa all'interno della funzionetrasferimento dice:

    cambia "il valore del campo pduratames1 del form nav del documento della finestra che ha aperto questa finestra " con "il valore del campo pduratames1 del form parteopzionale di questo documento ".

    Naturalmente al posto di "nav " devi mettere il nome del form della pagina principale, al posto di "parteopzionale " il nome del form della pagina "altricampi.htm " e al postro del campo "pduratames1 " il nome del campo (nascosto in pagina principare, editabile in pagina opzionale: lo abbiamo chiamato in tutte e due le pagine "pduratames1" ma ovviamente potresti usare anche nomi diversi, se vuoi complicarti la vita )

    Spero di essere stato più chiaro ora!

    Ti ripeto il FORM della pagina opzionale "altricampi.htm" non deve avere ACTION.. e neanche pulsanti SUBMIT perché non ti serve a niente! Deve solo prendere quei valori e ficcarli nel form di partenza.

    Naturamente, se l'utente apre la finestrella, e poi stupidamente chiude la principale, o passa ad un'altra pagina, la finestrella non potrà inserire i valori nel form principale...
    Che livello di stupidità (o malizia) dell'utente prevedi? Questo form serve a qualcosa di importante, serve sicurezza che l'utente per errore o con intenzione non faccia casini?

    In questo caso ti suggerisco il trucchetto di sommodeo, ottimo perché mantiene tutto il form in un unica pagina... Può essere chiusa tutta o annullata tutta, ma no metà si e metà no... Non so se mi spiego...

    Un modo per controllare che l'utente abbia cliccato "SI" e poi non completato i campi e quello di usare un altro campo nascosto "completato" che si imposta a "noncompletato" quando premi il pulsante "SI" (quello che ti apre la finestrella: che gioco di parole! ) e si imposta a "completato" con la funzioneditrasferimento....

    Insomma fa un po' come vuoi...
    Salvatore De Bonis AKA Novice of Ricotta AKA NashCrash

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.