Visualizzazione risultati 1 fino 6 di 6

Discussione: Form per l'invio di più allegati [divisa]

  1. #1
    Guest

    Predefinito Form per l'invio di più allegati [divisa]

    Discussione divisa

    mi rendo conto che questo post è vecchiotto ma spero che qualcuno mi risponda...

    stavo cercando di realizzare un form con la possibilità di inviare più allegati ed in più che fosse diviso a step senza cambiare pagina
    con in più due select di qui il secondo condizionato dal primo

    purtroppo in rete non ho trovato nulla di pronto che prevedesse tutto quanto (era da immaginare)

    cosi ho cercato di mettere insieme diversi form la parte relativa alla gestione allegati l'ho presa da qui facendo delle modifiche per gestire tre allegati contemporaneamente

    ma purtroppo non capisco cosa ho sbagliato visto che non funziona
    adesso di seguito metto tutto il codi ce risultato dal merge dei vari form trovati in giro nella speranza che qualcuno possa aiutarmi a finire il lavoro e lasciarlo per i posteri

    file html
    Codice HTML:
    <link rel="stylesheet" href="emx_nav_left.css" type="text/css"/>
    <link rel="stylesheet" href="css/slidingstyle.css" type="text/css" media="screen"/>
    
    
    	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
        <script type="text/javascript" src="js/sliding.form.js"></script>
    
    <!--script combo -->
    
    <script language="JavaScript" type="text/javascript">
    <!--
    
    // This script supports an unlimited number of linked combo boxed
    // Their id must be "combo_0", "combo_1", "combo_2" etc.
    // Here you have to put the data that will fill the combo boxes
    // ie. data_2_1 will be the first option in the second combo box
    // when the first combo box has the second option selected
    
    // first combo box
    
    	data_1 = new Option("Edilizia", "$");
    	data_2 = new Option("Impiantistica", "$$");
    	data_3 = new Option("Infissi", "$$$");
    	data_4 = new Option("Pulizie", "$$$$");
    	data_5 = new Option("Prestiti", "$$$$$");
    	data_6 = new Option("Acqua", "$$$$$$");
    	data_7 = new Option("Traslochi", "$$$$$$$");
    
    // second combo box
    
    	data_1_1 = new Option("Cartongesso", "-");
    	data_2_1 = new Option("Automazione Cancelli", "--");
    	data_3_1 = new Option("Infissi in Alluminio", "---");
    	data_4_1 = new Option("Impresa di Pulizie", "----");
    	data_5_1 = new Option("Finanziamenti", "-----");
    	data_6_1 = new Option("Addolcitori Acqua", "------");
    	data_7_1 = new Option("Traslochi", "-------");
    // other parameters
    
        displaywhenempty=""
        valuewhenempty=-1
    
        displaywhennotempty="-select-"
        valuewhennotempty=0
    
    function change(currentbox) {
    	numb = currentbox.id.split("_");
    	currentbox = numb[1];
    
        i=parseInt(currentbox)+1
    
    // I empty all combo boxes following the current one
    
        while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
               (document.getElementById("combo_"+i)!=null)) {
             son = document.getElementById("combo_"+i);
    	     // I empty all options except the first one (it isn't allowed)
    	     for (m=son.options.length-1;m>0;m--) son.options[m]=null;
    	     // I reset the first option
    	     son.options[0]=new Option(displaywhenempty,valuewhenempty)
    	     i=i+1
        }
    
    // now I create the string with the "base" name ("stringa"), ie. "data_1_0"
    // to which I'll add _0,_1,_2,_3 etc to obtain the name of the combo box to fill
    
        stringa='data'
        i=0
        while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
               (document.getElementById("combo_"+i)!=null)) {
               eval("stringa=stringa+'_'+document.getElementById(\"combo_"+i+"\").selectedIndex")
               if (i==currentbox) break;
               i=i+1
        }
    
    // filling the "son" combo (if exists)
    
        following=parseInt(currentbox)+1
    
        if ((eval("typeof(document.getElementById(\"combo_"+following+"\"))!='undefined'")) &&
           (document.getElementById("combo_"+following)!=null)) {
           son = document.getElementById("combo_"+following);
           stringa=stringa+"_"
           i=0
           while ((eval("typeof("+stringa+i+")!='undefined'")) || (i==0)) {
    
           // if there are no options, I empty the first option of the "son" combo
    	   // otherwise I put "-select-" in it
    
    	   	  if ((i==0) && eval("typeof("+stringa+"0)=='undefined'"))
    	   	      if (eval("typeof("+stringa+"1)=='undefined'"))
    	   	         eval("son.options[0]=new Option(displaywhenempty,valuewhenempty)")
    	   	      else
    	             eval("son.options[0]=new Option(displaywhennotempty,valuewhennotempty)")
    	      else
                  eval("son.options["+i+"]=new Option("+stringa+i+".text,"+stringa+i+".value)")
    	      i=i+1
    	   }
           //son.focus()
           i=1
           combostatus=''
           cstatus=stringa.split("_")
           while (cstatus[i]!=null) {
              combostatus=combostatus+cstatus[i]
              i=i+1
              }
           return combostatus;
        }
    }
    
    //-->
    </script>
    <!-- end script-->		
    </head>
    <body>
    	<!--inizioform-->
    	<div id="content">
              <div id="wrapper">
                <div id="steps">
                  <form id="formElem" name="formElem" action="mailto.php"method="post" enctype="multipart/form-data">
    			  <input type="hidden" name="destinatario" value="alvarez@pinetlab.it"/>
                    <fieldset class="step">
                    <legend>Tipo di preventivo</legend>
                      <p style="margin-top:25px;">
                      <label for="username">Scegli categori</label>
                      <select name="combo0" id="combo_0" onchange="change(this);" style="width:300px;">
                        <option value="value1">-select-</option>
                        <option value="value2">Edilizia</option>
                        <option value="value3">Impiantistica</option>
                        <option value="value4">Infissi</option>
                        <option value="value5">Pulizie</option>
                        <option value="value6">Prestiti</option>
                        <option value="value7">Acqua</option>
                        <option value="value8">Traslochi</option>
                      </select>
                    </p>
                      <p style="margin-top:30px;">
                      <label for="email">Scegli Argomento:</label>
                      <select name="combo1" id="combo_1" onchange="change(this)" style="width:300px;">
                        <option value="value1"> </option>
                      </select>
                    </p>
                    </fieldset>
                    <fieldset class="step">
                    <legend>Dati personali</legend>
                      <p>
                      <label for="name">Nome completo</label>
                      <input id="name" name="name" type="text" autocomplete=OFF style="width:300px;" />
                    </p>
                      <p>
                      <label for="country">Email</label>
                      <input id="email" name="email" placeholder="info@nonsolopreventivi.it" type="email" autocomplete=OFF style="width:300px;"/>
                    </p>
                      <p>
                      <label for="phone">Telefono</label>
                      <input id="phone" name="phone" placeholder="e.g. +351215555555" type="tel" autocomplete=OFF style="width:300px;"/>
                    </p>
                      <p>
                      <label for="country">Indirizzo - Citt&agrave;</label>
                      <input id="country" name="country" type="text" autocomplete=OFF style="width:300px;"/>
                    </p>
                    </fieldset>
                    <fieldset class="step">
                    <legend>testo</legend>
                      <p style="font-size:14px;"> Descrivi la tua richiesta:<br />
                        <textarea name="textarea" id="feedback" style="width:590px;height:150px"></textarea>
                        <br />
                    </p>
                      <p> </p>
                    </fieldset>
                    <fieldset class="step">
                    <legend>allegati</legend>
    				<p> Allega fino a tre diversi file (doc, xls, pdf, jpg, jpeg, png, gif, zip, rar)</p>
                      <p>
                      <label for="file1">allegato 1</label>
                      <input type="file" name="allegato1" id="allegato1" />
                    </p>
                      <p>
                      <label for="file2">allegato 2</label>
                      <input type="file" name="allegato2" id="allegato2" />
                    </p>
                      <p>
                      <label for="file3">allegato 3</label>
                      <input type="file" name="allegato3" id="allegato3" />
                    </p>
                    </fieldset>
                    <fieldset class="step">
                    <legend>verifica e invio</legend>
                      <p> Tutto il modulo è stato correttamente compilato
                         quando tutte le fasi hanno un icona con segno di spunta verde.
                         Un icona segno di spunta rosso indica che un certo campo
                         è assente o compilato con dati non validi. In questo ultimo passo l'utente può confermare l'invio del modulo. </p>
                      <p class="submit">
                      <button id="registerButton" type="submit">Invia</button>
                      </p>
                    </fieldset>
                  </form>
                </div>
                <div id="navigation" style="display:none;">
                  <ul>
                    <li class="selected"> <a href="#">Preventivo</a> </li>
                    <li> <a href="#">Dati personali</a> </li>
                    <li> <a href="#">testo</a> </li>
                    <li> <a href="#">allegati</a> </li>
                    <li> <a href="#">verifica e conferma</a> </li>
                  </ul>
                </div>
              </div>
          </div>
    	
    	<!-- fineform -->
    il problema potrebbe trovarsi nel select condizionato li sono andato un pò tanto a spanne
    Ultima modifica di dreadnaut : 14-03-2013 alle ore 13.41.16 Motivo: + tag [html]

  2. #2
    Guest

    Predefinito css

    file emx_nav_left.css

    Codice HTML:
    /* HTML tag styles                             */
    /***********************************************/
    body{
    	letter-spacing:4px;
    	font-family: Helvetica;
    	font-size:10px;
    	color: #333333;
    	line-height: 1.166;	
    	margin: 0 0 6em 0;
    	padding: 0px;
    	background-image:url(images/canvasbg.jpg) background-repeat:repeat;
    	background-image:url(bgprova2.jpg);
    	background-repeat:repeat-x;
    }
    
    /******* hyperlink and anchor tag styles *******/
    
    a:link, a:visited{
    	text-decoration: none;
    }
    
    a:hover{
    	text-decoration: underline;
    }
    
    /************** header tag styles **************/
    
    .cOpere{
    	height:1800px;
    	border-color:#CCCCCC;
    	border:thick;
    }
    
    h1{
     font: bold 120% Arial,sans-serif;
     color: #334d55;
     margin: 0px;
     padding: 0px;
    }
    
    h2{
     font: 150% Helvetica;
     font-size:14px;
     letter-spacing:10px;
     color: #FF0000;
     margin: 0px;
     padding: 0px;
    }
    
    h3{
     font: bold 100% Helvetica;
     color:#FF3300;
    }
    
    h4{
     font: 100% Helvetica;
     color: #333333;
     margin: 0px;
     padding: 0px;
    }
    
    h5{
     font: Helvetica;
     font-size:15px;
     color: #FFFFFF;
     margin: 0px;
     padding: 0px;
    }
    
    td{
    	font-size:11px;
    }
    
    tr{
    	font-size:11px;
    }
    
    tr a{
    	font-size:11px;
    	color:#666666;
    	margin: 0px;
    	padding: 2px 5px 4px 0px;
    }
    tr a:visited{
    	font-size:11px;
    	color:#666666;
    	margin: 0px;
    	padding: 2px 5px 4px 0px;
    }
    
    tr a:hover{
    	text-decoration: none;
    	color:#000000;
    	padding: 2px 5px 4px 0px;
    }
    
    
    
    /********* form and related tag styles *********/
    
    form {
    	margin: 0px;
    	padding: 0px;
    }
    
    label{
     font: bold 1em Arial,sans-serif;
     color: #334d55;
    }
    				
    input{
    font-family: Arial,sans-serif;
    }
    
    #pagehead{
    	position:relative;
    	width: 860px;
    	height: 38px;
    	font-size:15px;
    	letter-spacing:3px;
    	color:#666666;
    	text-align:left;
    	padding-top:7px;
    	background-image:url(images/bgmenu.png);
    	background-repeat:no-repeat;
    }
    
    #linkhead{
    	width:840px;
    	font-size:13px;
    	letter-spacing:3px;
    	color:#666666;
    	text-decoration:underline;
    	text-align:left;
    	margin-top: 15px;
    }
    
    #linkhead a:link, #linkhead a:visited, #linkhead a:hover{
    	font-size:13px;
    	letter-spacing:3px;
    	color:#666666;
    	text-decoration:underline;
    	text-align:left;
    }
    
    #subhead{
    	width:850px;
    	font-size:13px;
    	letter-spacing:3px;
    	color:#666666;
    	text-align:left;
    	margin-top:5px;
    }
    
    #yearhead{
    	width:860px;
    	font-size:12px;
    	letter-spacing:6px;
    	color:#000000;
    	text-align:left;
    	margin-top:-0px;
    	margin-bottom:3px;
    }
    
    
    
    #yearhead a:link, #yearhead a:visited{
    	font-size:12px;
    	letter-spacing:6px;
    	color:#666666;
    	text-align:left;
    }
    
    #yearhead a:hover{
    	font-size:12px;
    	letter-spacing:6px;
    	color:#666666;
    	text-align:left;
    	text-decoration:underline;
    }
    
    
    .numDiv {
    	margin-top:-4px;
    	position:relative;
    	width:860px;
    	background-image: url(bgbanner.jpg);
    	background-position:right;
    	height:180px;
    }
    
    .textDiv{
    	float:right;
    	text-align:left;
    	font-size:14px;
    	color:#990000;
    	width:360px;
    	padding-top:5px;
    	font-family:Helvetica, Arial;
    }
    
    #pagecell{
    	position:relative;
    	top: 9px;
    	left: 2%;
    	right: 2%;
    	width:95.6%;
    }
    
    #pagecell1{
    	position:absolute;
    	top: 83px;
    	left: 2%;
    	right: 2%;
    	width:95.6%;
    }
    
    #tl {
    	position:absolute;
    	top: -1px;
    	left: -1px;
    	margin: 0px;
    	padding: 0px;
    	z-index: 100;
    }
    
    #tr {
    	position:absolute;
    	top: -1px;
    	right: -1px;
    	margin: 0px;
    	padding: 0px;
    	z-index: 100;
    }
    
    #masthead{
    	left: 2%;
    	right: 2%;
    	width:95.6%;
    	width: 889px;
    	margin:auto;
    }
    
    #pageNav{
    	float:right;
    	width:178px;
    	padding: 0px;
    	font: small Helvetica, Arial;
    }
    
    #pageNavsx{
    	float:left;
    	width:178px;
    	padding: 0px;
    	font: small Helvetica;
    }
    
    
    #pageNavArtisti{
    	color:#1655BE;
    	float:left;
    	width:220px;
    	padding: 0px;
    	font: small Helvetica;
    	background-image:url(bg_cs.png);
    	background-position:right;
    	background-repeat:repeat-y;
    }
    
    #contentindex{
    	height: 1000px;
    	padding: 0px 10px 0px 0px;
    	margin:0px 0px 0px 0px;
    }
    
    #contentindex2{
    	background-image: url(logogalleriabianco.jpg);
    	background-repeat: no-repeat;
    	background-position: center;
    	background-position:top;
    	height: 400px;
    	padding: 0px 10px 0px 0px;
    	margin:0px 0px 0px 0px;
    }
    
    #content{
    	padding: 0px 0px 0px 0px;
    	margin:0px 0px 0px 0px;
    	width: 875px;
    }
    
    #contentRight{
    	background-image: url(logogalleriabianco.jpg);
    	background-repeat: no-repeat;
    	background-position:center;
    	background-position:top;
    	height: 400px;
    	padding: 0px 10px 0px 0px;
    	margin:0px 0px 0px 0px;
    	}
    	
    #contentRightWhite{
    	height: 400px;
    	padding: 0px 10px 0px 0px;
    	margin:0px 0px 0px 0px;
    	}
    
    
    
    /***********************************************/
    /* Component Divs                              */
    /***********************************************/
    #siteName{
    	margin: 0px;
    	padding: 0px 0px 0px 0px;
    	color: #000000;
    	font-weight: normal;
    }
    /************** pageName styles ****************/
    
    #pageName{
    	letter-spacing:6px;
    	padding: 0px 0px 14px 0px;
    	margin: 0px;
    	width:860px;
    }
    
    #pageName h2{
    	letter-spacing:40px;
    	font: Helvatica;
    	font-size:36px;
    	color: #666666;
    	margin:0px;
    	padding: 0px;
    	margin-top:10px;
    }
    
    #pageName img{
    	position: absolute;
    	top: 0px;
    	right: 6px;
    	padding: 0px;
    	margin: 0px;
    }
    
    /************* globalNav styles ****************/
    
    a img { border: 0; }
    
    a.glink, a.glink:visited{
    	font-size:9px;
    	font-family: Helvetica;
    	color:#CCCCCC;
    	padding: 5px 7px 0px 7px;
    	border-right: 1px solid #8FB8BC;
    	margin-top:6px;
    }
    
    a.glink:hover{
      	background-image: url(glblnav_selected.gif);
    	text-decoration: none;
    	color:#000000;
    }
    
    
    /************* breadCrumb styles ***************/
    
    #breadCrumb{
    	font: small Helvetica;
    	color: #AAAAAA;
    }
    
    
    /************** feature styles *****************/
    
    .feature{
    	letter-spacing:0px;
    	padding: 0px 0px 0px 0px;
    	font-size: 80%;
    	width:860px;
    }
    
    
    html>body .feature {
    	margin-left:0px;
    	padding-left:0px;
    }
    
    .feature h3{
    	font: bold 175% Arial,sans-serif;
    	color: #000000;
    	padding: 30px 0px 5px 0px;
    }
    
    
    
    /************** feature2 styles *****************/
    
    .feature2{
    	letter-spacing:0px;
    	padding: 0px 0px 0px 0px;
    	font-size: 80%;
    	width:1000px;
    }
    
    
    html>body .feature2 {
    	margin-left:0px;
    	padding-left:0px;
    }
    
    .feature2 h3{
    	font: bold 175% Arial,sans-serif;
    	color: #000000;
    	padding: 30px 0px 5px 0px;
    }
    
    
    /************** feature2 styles *****************/
    
    .feature3{
    	letter-spacing:0px;
    	padding: 0px 0px 0px 0px;
    	font-size: 80%;
    	width:871px;
    }
    
    
    html>body .feature3 {
    	margin-left:0px;
    	padding-left:0px;
    }
    
    .feature3 h3{
    	font: bold 175% Arial,sans-serif;
    	color: #000000;
    	padding: 30px 0px 5px 0px;
    }
    
    
    /*end*/

  3. #3
    Guest

    Predefinito css

    file slidingstyle.css

    Codice HTML:
    *{
        margin:0px;
        padding:0px;
    }
    #content{
        margin:0px auto;
        text-align:center;
        width:860px;
        position:relative;
        height:100%;
    	background-image:url(../images/container2.png);
    }
    #wrapper{
        -moz-border-radius:10px;
        -webkit-border-radius:10px;
        width:860px;
        overflow:hidden;
    	padding-top:20px;
    	padding-bottom:25px;
    	margin-top:-20px;
    }
    #steps{
        width:840px;
    	/*height:320px;*/
        overflow:hidden;
    }
    .step{
        float:left;
        width:850px;
    	/*height:320px;*/
    }
    #navigation{
        height:45px;
        border-top:1px solid #fff;
        -moz-border-radius:0px 0px 10px 10px;
        -webkit-border-bottom-left-radius:10px;
        -webkit-border-bottom-right-radius:10px;
        border-bottom-left-radius:10px;
        border-bottom-right-radius:10px;
    	font-size:14px;
    }
    #navigation ul{
        list-style:none;
    	float:left;
    	margin-left:22px;
    }
    #navigation ul li{
    	float:left;
        border-right:1px solid #ccc;
        border-left:1px solid #ccc;
        position:relative;
    	margin:0px 2px;
    }
    #navigation ul li a{
        display:block;
        height:45px;
        color:#777;
        outline:none;
        font-weight:bold;
        text-decoration:none;
        line-height:45px;
        padding:0px 20px;
        border-right:1px solid #fff;
        border-left:1px solid #fff;
        background:
            -webkit-gradient(
            linear,
            left bottom,
            left top,
            color-stop(0.09, rgb(240,240,240)),
            color-stop(0.55, rgb(227,227,227)),
            color-stop(0.78, rgb(240,240,240))
            );
        background:
            -moz-linear-gradient(
            center bottom,
            rgb(240,240,240) 9%,
            rgb(227,227,227) 55%,
            rgb(240,240,240) 78%
            )
    }
    #navigation ul li a:hover,
    #navigation ul li.selected a{
        background:#d8d8d8;
        color:#666;
        text-shadow:1px 1px 1px #fff;
    }
    span.checked{
        background:transparent url(../images/checked.png) no-repeat top left;
        position:absolute;
        top:0px;
        left:1px;
        width:20px;
        height:20px;
    }
    span.error{
        background:transparent url(../images/error.png) no-repeat top left;
        position:absolute;
        top:0px;
        left:1px;
        width:20px;
        height:20px;
    }
    #steps form fieldset{
        border:none;
        padding-bottom:20px;
    }
    #steps form legend{
        text-align:left;
        background-color:#f0f0f0;
        color:#666;
        font-size:24px;
        text-shadow:1px 1px 1px #fff;
        font-weight:bold;
        float:left;
        width:800px;
        padding:5px 0px 5px 60px;
        margin:10px 0px;
        border-bottom:1px solid #fff;
        border-top:1px solid #d9d9d9;
    }
    #steps form p{
        float:left;
        clear:both;
        margin:5px 0px;
        background-color:#f4f4f4;
        border:1px solid #fff;
        width:600px;
        padding:10px;
        margin-left:100px;
        -moz-border-radius: 5px;
        -webkit-border-radius: 5px;
        border-radius: 5px;
        -moz-box-shadow:0px 0px 3px #aaa;
        -webkit-box-shadow:0px 0px 3px #aaa;
        box-shadow:0px 0px 3px #aaa;
        font-size:14px;
    }
    #steps form p label{
        width:160px;
        float:left;
        text-align:right;
        margin-right:15px;
        line-height:26px;
        color:#666;
        text-shadow:1px 1px 1px #fff;
        font-weight:bold;
    	font-size:14px;
    }
    #steps form input:not([type=radio]),
    #steps form textarea,
    #steps form select{
        background: #ffffff;
        border: 1px solid #ddd;
        -moz-border-radius: 3px;
        -webkit-border-radius: 3px;
        border-radius: 3px;
        outline: none;
        padding: 5px;
        width: 200px;
        float:left;
    }
    #steps form input:focus{
        -moz-box-shadow:0px 0px 3px #aaa;
        -webkit-box-shadow:0px 0px 3px #aaa;
        box-shadow:0px 0px 3px #aaa;
        background-color:#FFFEEF;
    }
    #steps form p.submit{
        background:none;
        border:none;
        -moz-box-shadow:none;
        -webkit-box-shadow:none;
        box-shadow:none;
    }
    #steps form button {
    	border:none;
    	outline:none;
        -moz-border-radius: 10px;
        -webkit-border-radius: 10px;
        border-radius: 10px;
        color: #ffffff;
        display: block;
        cursor:pointer;
        margin: 0px auto;
        clear:both;
        padding: 7px 25px;
        text-shadow: 0 1px 1px #777;
        font-weight:bold;
        font-family:"Century Gothic", Helvetica, sans-serif;
        font-size:22px;
        -moz-box-shadow:0px 0px 3px #aaa;
        -webkit-box-shadow:0px 0px 3px #aaa;
        box-shadow:0px 0px 3px #aaa;
        background:#4797ED;
    }
    #steps form button:hover {
        background:#d8d8d8;
        color:#666;
        text-shadow:1px 1px 1px #fff;
    }
    
    h1{
                color:#ccc;
                font-size:36px;
                text-shadow:1px 1px 1px #fff;
                padding:20px;
            }

  4. #4
    Guest

    Predefinito js

    file sliding.form.js

    Codice:
    $(function() {
    	/*
    	number of fieldsets
    	*/
    	var fieldsetCount = $('#formElem').children().length;
    	
    	/*
    	current position of fieldset / navigation link
    	*/
    	var current 	= 1;
        
    	/*
    	sum and save the widths of each one of the fieldsets
    	set the final sum as the total width of the steps element
    	*/
    	var stepsWidth	= 0;
        var widths 		= new Array();
    	$('#steps .step').each(function(i){
            var $step 		= $(this);
    		widths[i]  		= stepsWidth;
            stepsWidth	 	+= $step.width();
        });
    	$('#steps').width(stepsWidth);
    	
    	/*
    	to avoid problems in IE, focus the first input of the form
    	*/
    	$('#formElem').children(':first').find(':input:first').focus();	
    	
    	/*
    	show the navigation bar
    	*/
    	$('#navigation').show();
    	
    	/*
    	when clicking on a navigation link 
    	the form slides to the corresponding fieldset
    	*/
        $('#navigation a').bind('click',function(e){
    		var $this	= $(this);
    		var prev	= current;
    		$this.closest('ul').find('li').removeClass('selected');
            $this.parent().addClass('selected');
    		/*
    		we store the position of the link
    		in the current variable	
    		*/
    		current = $this.parent().index() + 1;
    		/*
    		animate / slide to the next or to the corresponding
    		fieldset. The order of the links in the navigation
    		is the order of the fieldsets.
    		Also, after sliding, we trigger the focus on the first 
    		input element of the new fieldset
    		If we clicked on the last link (confirmation), then we validate
    		all the fieldsets, otherwise we validate the previous one
    		before the form slided
    		*/
            $('#steps').stop().animate({
                marginLeft: '-' + widths[current-1] + 'px'
            },500,function(){
    			if(current == fieldsetCount)
    				validateSteps();
    			else
    				validateStep(prev);
    			$('#formElem').children(':nth-child('+ parseInt(current) +')').find(':input:first').focus();	
    		});
            e.preventDefault();
        });
    	
    	/*
    	clicking on the tab (on the last input of each fieldset), makes the form
    	slide to the next step
    	*/
    	$('#formElem > fieldset').each(function(){
    		var $fieldset = $(this);
    		$fieldset.children(':last').find(':input').keydown(function(e){
    			if (e.which == 9){
    				$('#navigation li:nth-child(' + (parseInt(current)+1) + ') a').click();
    				/* force the blur for validation */
    				$(this).blur();
    				e.preventDefault();
    			}
    		});
    	});
    	
    	/*
    	validates errors on all the fieldsets
    	records if the Form has errors in $('#formElem').data()
    	*/
    	function validateSteps(){
    		var FormErrors = false;
    		for(var i = 1; i < fieldsetCount; ++i){
    			var error = validateStep(i);
    			if(error == -1)
    				FormErrors = true;
    		}
    		$('#formElem').data('errors',FormErrors);	
    	}
    	
    	/*
    	validates one fieldset
    	and returns -1 if errors found, or 1 if not
    	*/
    	function validateStep(step){
    		var error = 1;
    		
    		if(step == fieldsetCount-1) return;
    		if(step == fieldsetCount) return;
    		
    		var hasError = false;
    		$('#formElem').children(':nth-child('+ parseInt(step) +')').find(':input:not(button)').each(function(){
    			var $this 		= $(this);
    			var valueLength = jQuery.trim($this.val()).length;
    			
    			if(valueLength == ''){
    				hasError = true;
    				$this.css('background-color','#FFEDEF');
    			}
    			else
    				$this.css('background-color','#FFFFFF');	
    		});
    		var $link = $('#navigation li:nth-child(' + parseInt(step) + ') a');
    		$link.parent().find('.error,.checked').remove();
    		
    		var valclass = 'checked';
    		if(hasError){
    			error = -1;
    			valclass = 'error';
    		}
    		$('<span class="'+valclass+'"></span>').insertAfter($link);
    		
    		return error;
    	}
    	
    	/*
    	if there are errors don't allow the user to submit
    	*/
    	$('#registerButton').bind('click',function(){
    		if($('#formElem').data('errors')){
    			alert('Si prega di compilare tutti i campi richiesti');
    			return false;
    		}	
    	});
    });

  5. #5
    Guest

    Predefinito finalmente il php

    file mailto.php
    temo che l'errore si trovi qui
    nella parte che riguarda acquisizioni valori dal select che sono andato parecchio a spanne o nella gestione allegati

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>richiesta preventivo - nonsolopreventivi.it</title>
    <style media="all" type="text/css">
    body{
    background-image:url(images/canvasbg.jpg);
    }
    </style>
    </head>

    <body>

    <?php

    $oggi
    = date("j F Y G:i");
    $sito = "NON SOLO PREVENTIVI";
    $to = $_POST['destinatario'];
    $oggetto = "Richiesta preventivo da $sito";
    $email = $_POST['email'];
    $categoria = document.form["formElem"].combo0.value;
    $argomento = document.form["formElem"].combo0.value;

    // Valorizzo le variabili relative all'allegato
    $allegato1 = $_FILES['allegato1']['tmp_name'];
    $allegato1_type = $_FILES['allegato1']['type'];
    $allegato1_name = $_FILES['allegato1']['name'];
    $allegato2 = $_FILES['allegato2']['tmp_name'];
    $allegato2_type = $_FILES['allegato2']['type'];
    $allegato2_name = $_FILES['allegato2']['name'];
    $allegato3 = $_FILES['allegato3']['tmp_name'];
    $allegato3_type = $_FILES['allegato3']['type'];
    $allegato3_name = $_FILES['allegato3']['name'];




    // Creo 2 variabili che riempirò più avanti...
    $headers = "From: " . $email;
    $msg = "";
    $body = "Modulo inviato il $oggi \nda $ip - $browser \n\n";
    $body .= "Richiesta preventivo per $categoria - $argomento \n\n inviata da: $_POST[name] \n Indirizzo: Email: $_POST[email] \nTelefono: $_POST[phone] \Indirizzo: $_POST[country]\n Messaggio: $_POST[textarea] \n";

    $uno = is_uploaded_file($allegato1);
    $due = is_uploaded_file($allegato2);
    $tre = is_uploaded_file($allegato3);

    // Verifico se almeno un file è stato caricato correttamente via HTTP
    // In caso affermativo proseguo nel lavoro...
    if ($uno=="1"||$due=="1"||$tre=="1")
    {
    // Aggiungo le intestazioni necessarie per l'allegato
    $headers .= "\nMIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed;\n";
    $headers .= " boundary=\"{$mime_boundary}\"";

    // Definisco il tipo di messaggio (MIME/multi-part)
    $msg .= "This is a multi-part message in MIME format.\n\n";

    // Metto il separatore
    $msg .= "--{$mime_boundary}\n";

    // Questa è la parte "testuale" del messaggio
    $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    $msg .= "Content-Transfer-Encoding: 7bit\n\n";
    $msg .= $body;

    // Metto il separatore
    $msg .= "--{$mime_boundary}\n";

    //verifico se e stato caricato correttamente il primo allegato in caso affermativo proseguo
    if (is_uploaded_file($allegato1)) {
    // Apro e leggo il file allegato
    $file1 = fopen($allegato1,'rb');
    $data1 = fread($file1, filesize($allegato1));
    fclose($file1);

    // Adatto il file al formato MIME base64 usando base64_encode
    $data1 = chunk_split(base64_encode($data1));

    // Genero il "separatore"
    // Serve per dividere, appunto, le varie parti del messaggio.
    // Nel nostro caso separerà la parte testuale dall'allegato
    $semi_rand = md5(time());
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

    // Aggiungo l'allegato al messaggio
    $msg .= "Content-Disposition: attachment;\n";
    $msg .= " filename=\"{$allegato1_name}\"\n";
    $msg .= "Content-Transfer-Encoding: base64\n\n";
    $msg .= $data1 . "\n\n";

    // chiudo con il separatore
    $msg .= "--{$mime_boundary}--\n";
    }

    //verifico se e stato caricato correttamente il secondo allegato in caso affermativo proseguo
    if (is_uploaded_file($allegato2)) {
    // Apro e leggo il file allegato
    $file2 = fopen($allegato2,'rb');
    $data2 = fread($file2, filesize($allegato2));
    fclose($file2);

    // Adatto il file al formato MIME base64 usando base64_encode
    $data2 = chunk_split(base64_encode($data2));

    // Genero il "separatore"
    // Serve per dividere, appunto, le varie parti del messaggio.
    // Nel nostro caso separerà la parte testuale dall'allegato
    $semi_rand = md5(time());
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

    // Aggiungo l'allegato al messaggio
    $msg .= "Content-Disposition: attachment;\n";
    $msg .= " filename=\"{$allegato2_name}\"\n";
    $msg .= "Content-Transfer-Encoding: base64\n\n";
    $msg .= $data2 . "\n\n";

    // chiudo con il separatore
    $msg .= "--{$mime_boundary}--\n";
    }

    //verifico se e stato caricato correttamente il terzo allegato in caso affermativo proseguo
    if (is_uploaded_file($allegato3))
    {
    // Apro e leggo il file allegato
    $file3 = fopen($allegato3,'rb');
    $data3 = fread($file3, filesize($allegato3));
    fclose($file3);

    // Adatto il file al formato MIME base64 usando base64_encode
    $data3 = chunk_split(base64_encode($data3));

    // Genero il "separatore"
    // Serve per dividere, appunto, le varie parti del messaggio.
    // Nel nostro caso separerà la parte testuale dall'allegato
    $semi_rand = md5(time());
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

    // Aggiungo l'allegato al messaggio
    $msg .= "Content-Disposition: attachment;\n";
    $msg .= " filename=\"{$allegato3_name}\"\n";
    $msg .= "Content-Transfer-Encoding: base64\n\n";
    $msg .= $data3 . "\n\n";

    // chiudo con il separatore
    $msg .= "--{$mime_boundary}--\n";
    }
    }

    //se non è stato caricato nessun allegato mi limito ad inviare il messaggio
    else
    {
    $msg .= $body;
    }

    mail("$to","$oggetto","$msg","$headers"); }

    ?>
    <center><br /><br />
    <h2 style="color:#0000FF">Compliemnti per la tua scelta <br />
    sarai ricontattato al pi&ugrave; presto da un nostro consulente </h2>
    <br />
    <p style="color:#0000FF; font-size:19px; letter-spacing:2;">&nbsp;</p>
    <a href="indexnsp.html"><strong>torna alla pagina iniziale</strong></a>
    </center>
    </body>
    </html>
    spero di non essermi allargato troppo ho ripulito un pochino spero che qualcono abbia la pazienza e la voglia di tirare giu tutto questo e cercare di capirci qualcosa

    dal canto mio ho gia deciso di rinunciarci per questo sito e di fare con un solo file allegato magari il problema e relativo al select al quale non posso rinunciare e quel punto

    gia che ci sono qualcono mi puo dire se e giusto il modo in qui prendo i dati dal select?!

    tenendo conto anche del fatto che viene gestito con un javascript


    $categoria = document.form["formElem"].combo0.value;

    grazie e buone cose

  6. #6
    Guest

    Predefinito up

    up

    nessuno che sa aiutarmi?!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •