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

    Mi serve aiuto con i controlli per un form!\

    Salve a tutti, è la prima volta che scrivo su questo forum e premetto che sono alle prime armi con la programmazione web.
    Dovrei realizzare un semplice form al quale dovrei far eseguire dei controlli prima che venga inviato.
    Il codice del form è postato qui sotto:
    codice:
    <form name="dorso" id="dorso" action="calcoloDorso.php" method="post" enctype="multipart/form-data" autocomplete="on">
    		<table border="1">
    			<tr>
    				<td>
    					<lable>Larghezza</lable>
    				</td>
    				<td>
    					<input type="text" name="larghezza"> cm
    				</td>
    			</tr>
    			<tr>
    				<td>
    					<lable>Altezza</lable>
    				</td>
    				<td>
    					<input type="text" name="altezza"> cm
    				</td>
    			<tr>
    				<td>
    					<lable>Numero
    di pagine</lable>
    				</td>
    				<td>
    					<input type="text" name="pagine" id="pagine" value="">
    				</td>
    			</tr>
    			<tr>
    				<td>
    					<lable>Grammatura</lable>
    				</td>
    				<td>
    					<input type="text" name="grammatura" id="grammatura" value="">
    				</td>
    			</tr>
    			<tr>
    				<td>
    					<lable>Mano (vsa)</lable>
    				</td>
    				<td>
    					<select name="vsa">
    					<option value="1">Carta patinata Opaca</option>
    					<option value="0.8">Carta patinata Lucida</option>
    					<option value="1.2">Carta Usomano</option>
    					</select>
    				</td>
    			</tr>
    			<tr>
    				<td>
    				</td>
    				<td>
    					<input type="submit" name"Invia" value="Invia" onSubmint="return controllo();">
    				</td>
    			</tr>
    		</table>
    	</form>
    Mentre questo è il PHP di ripsosta
    codice:
    <?php
    
    $grammatura = $_POST['grammatura'];
    $nPagine = $_POST['pagine'];
    $vsa = $_POST['vsa'];
    $spessoreFoglio = $grammatura * $vsa * $nPagine;
    $spessoreFogli = $spessoreFoglio/2000;
    echo "".$spessoreFogli." mm";
    //formato totale
    $L = $_POST['larghezza'];
    $A = $_POST['altezza'];
    $Ltot = ($L*2)+$spessoreFogli;
    echo "
    Il formato della copertina &egrave; ".$L." x ".$Ltot." cm";
    ?>


    Quello che cerco è un tutorial che mi possa spiegare come riuscire a creare i vari controlli attraverso javascript prima che il form venga inviato.
    In particolare: che siano presenti i valori per "grammatura", "numero di fogli" e per quest'ultimo che il numero si pari, e che al posto della "," venga usato il ".".

    Ringrazio in anticipo tutti quelli che mi potranno essere di auito.

    Grazie

  2. #2
    Proverei così
    codice:
    function controlla(form)
              {
               var msgErr;
               for(var i=0;i<form.length-1;i++)
                   {
                     if(form[i].name=="grammatura"&&form[i]==""&&form[i]==null)
                       {
                        msgErr+='Il campo grammatura è obbligatorio\n';
                       }
                      if(form[i].name=="pagine"&&form[i]==""form[i]==null)
                       {
                        msgErr+='Il campo pagine è obbligatorio\n';
                       }
                       if(form[i].name=="pagine")
                       {
                         if(pareInt(form[i].value)%2!=0)
                         msgErr+='Il nr. pagine deve essere pari\n';
                       }
                   } 
                   if(msgErr)
                    { 
                     alert(msgErr);
                     return false;
                    }
                     else
                    {
    	      	 return confirm('Il form e\\' ok, vuoi continuare?');
                     }
              }
    + o -
    Poi volendo ci si può sbizzarrire cambiando lo stile dei campi.

  3. #3
    Originariamente inviato da sergioDario
    if(form[i].name=="pagine"&&form[i]==""form[i]==null)
    correggo
    codice:
    if(form[i].name=="pagine"&&form[i]==""&&form[i]==null)

  4. #4
    Ringrazio innanzi tutto per il prezioso aiuto ed il tempo dedicato, ma ho un'ultima richiesta se posso permettermi, volevo fare in modo nel campo "larghezza" e "altezza" per numeri decimali scritto con "," venga visualizzato un errore, mentre passino quelli con il "." es:

    29,7 errore

    29.7 corretto

    Questa è la mia ultima richiesta, libera a chiunque volesse darmi una mano.

    Ringrazio ancora per tutto il gentilissimo aiuto datomi.

  5. #5
    Aggiungo:
    codice:
    function controlla(form)
              {
               var msgErr;
               for(var i=0;i<form.length-1;i++)
                   {
                       form[i].style.background='';// resetto lo sfondo
                       if(form[i].name=="grammatura"&&form[i]==""&&form[i]==null)
                       {
                        msgErr+='Il campo grammatura è obbligatorio\n';
                         form[i].style.background='red';
                       }
                      if(form[i].name=="pagine"&&form[i]==""form[i]==null)
                       {
                        msgErr+='Il campo pagine è obbligatorio\n';
                       //in caso di errore do sfondo rosso alla cella
                     form[i].style.background='red';
                       }
                       if(form[i].name=="pagine")
                       {
                         if(pareInt(form[i].value)%2!=0)
                         msgErr+='Il nr. pagine deve essere pari\n';
                         form[i].style.background='red';
                       }
                       if(form[i].name=="larghezza"||form[i].name=="altezza")
                       {
                         if(form[i].value.indexOf(',')!=-1)
                            {
                            msgErr+='E\\' necessario usare il . al posto della virgola\n';
                             form[i].style.background='red';
                            }
                       }
                   } 
                   if(msgErr)
                    { 
                     alert(msgErr);
                     return false;
                    }
                     else
                    {
    	      	 return confirm('Il form e\' ok, vuoi continuare?');
                     }
              }
    Ciao

  6. #6
    o in alternativa potresti sostituire direttamente la virgola con il punto
    codice:
    if(form[i].name=="larghezza"||form[i].name=="altezza")
                       {
                         if(form[i].value.indexOf(',')!=-1)
                           {
                            form[i].value.replace(',' , '.');
                            }
                       }

  7. #7
    Magari già lo sai, però il controllo lato server deve esserci sempre nel caso in cui si disattivi javascript.

  8. #8
    Intendi i controlli in php, li ho già integrati, ma volevo prevenire attraverso i controlli javascript.

    Grazie

    Appena termino la pagina, la posto.

    Grazie per l'aiuto, oggi come oggi è difficile trovare persone così disponibili.

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.