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à</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