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

    Form con campi dipendenti dalla scelta

    Ciao a tutti, sto cercando di realizzare un form di regitrazione con dei campi che in base alle scelte fatte dall'utente, si devono visualizzare o attivare dei campi in più da inserire.

    Non ho idea di come si possa fare spero che qualcuno mi possa aiutare.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    26
    Potresti utilizzare i layer (livelli)...

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_reloadPage(init) { //reloads the window if Nav4 resized
    if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
    else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
    }
    MM_reloadPage(true);

    function MM_findObj(n, d) { //v4.01
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }

    function MM_showHideLayers() { //v6.0
    var i,p,v,obj,args=MM_showHideLayers.arguments;
    for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible'v=='hide')?'hidden':v; }
    obj.visibility=v; }
    }
    //-->
    </script>
    </head>

    <body>
    <form action="registrazione.php" method="post" name="registrazione">
    Opzione 1<input name="scelta" type="radio" onClick="MM_showHideLayers('Layer1','','hide')" value="1">


    Opzione 2<input name="scelta" type="radio" onClick="MM_showHideLayers('Layer1','','show')" value="2">


    Opzione 3<input name="scelta" type="radio" onClick="MM_showHideLayers('Layer1','','hide')" value="3">


    <div id="Layer1" style="position:absolute; left:138px; top:15px; width:192px; height:73px; z-index:1; visibility: hidden;">
    Informazione in più
    <input name="Info" type="text" size="15" maxlength="15">
    </div>
    <input name="invia" type="submit" value="Invia">
    </form>
    </body>
    </html>

    Questo è un esempietto stupidissimo...selezionando il radiobutton 2 mostri il campo di testo...
    Gli altri 2 lo nascondono...se poi hai l'esigenza di pulire il campo di testo se dopo averlo compilato ricecchi l'opzione 1 o 3, allora usa il Javascript...se hai bisogno di aiuto dimmelo..
    Se hai dreamweaver fai in 2 secondi

  3. #3
    Pultroppo con i layer non è possibile gestirlo... perchè essendo un sito gestito dinamicamente in php non posso sapere quanto testo ci sia nella pagina!


  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    26
    in che senso non puoi sapere quanto testo hai nella pagina??
    Altirmenti usa il Javascript...

    Esempio:

    Hai un campo di testo che dev'essere attivo solo se veien cecckata una determinata opzione..
    all'inizio lo metti readonly, poi ti fai una funzioncina che toglie il readonly al campo e la metti associata all'evento che ti serve sull'opzione...
    Allo stesso modo ne fai una che rimette il readonly e l'associ in modo che se deselezioni l'opzione venga richiamata..

    Non so se mi sono spiegato...spero di si

  5. #5
    un esempio pratico si può avere????

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    26

    Esempio molto semplice...

    <html>
    <head>
    <script language="JavaScript">
    function abilita(){
    window.nomeForm.info.style.visibility = "visible";
    }

    function disabilita(){
    window.nomeForm.info.value = "";
    window.nomeForm.info.style.visibility = "hidden";
    }
    </script>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body>
    <form action="action" method="post" name="nomeForm">
    Opzione 1<input name="scelta" type="radio" value="1" onClick="disabilita()">

    Opzione 2<input name="scelta" type="radio" value="2" onClick="abilita()">

    Opzione 3<input name="scelta" type="radio" value="3" onClick="disabilita()">

    <input name="info" type="text" size="10" maxlength="10" style="visibility:hidden">

    <input name="submit" type="submit" value="Invia">
    </form>
    </body>
    </html>

  7. #7
    Ottimo Funziona.....

    Grazie tante. :mavieni:

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    26
    :gren: Ok!Se hai bisogno...

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.