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

    validazione e visualizzazione form nascosto

    Salve,
    chiedo nuovamente aiuto a voi esperti perché io con javascript sono appena un principiante.
    Ho un piccolo problema con la validazione di un form. Mi spiego meglio.
    Nella mia pagina ho un form composto da una prima parte ben visibile all’utente e da una seconda parte inizialmente nascosta (tramite javascript) che viene visualizzata a video solo se l’utente clicca su una determinata checkbox (sempre tramite javascript).
    Ogni volta che la pagina viene caricata la seconda parte del modulo viene sempre nascosta.
    Quando l’utente attiva (cliccando sulla relativa checkbox) la visualizzazione della seconda parte del form e ne inserisce i dati richiesti, quando invia i dati, effettuando una validazione sugli stessi lato server (tramite php), alla presenza di eventuali errori rimando l’utente alla stessa pagina del form per visualizzarne gli errori, ma al caricare nuovamente della pagina, la stessa viene mostrata sempre con la seconda parte del form nascosta e l’utente per visualizzare i campi in cui ha commesso gli eventuali errori deve sempre visualizzare la seconda parte nascosta del modulo cliccando sulla checkbox che l’attiva.
    Io invece desidererei, nel caso in cui la checkbox fosse stata attivata dall’utente per riempire la seconda parte del modulo, che, se ci fossero degli errori presenti dopo la validazione, l’utente venisse rimandato alla stessa pagina ma con la seconda parte del modulo non più nascosta ma ben visibile all’utente mostrando gli errori commessi.
    Vi posto il codice con cui nascondo e visualizzo la seconda parte del form.
    Spero che qualcuno di voi possa riuscire ad aiutarmi.
    Grazie anticipatamente.

    codice:
    <script type="text/javascript">
    	function 
    	clickCompany(obj)
    		{
    		if(obj.checked)
    			document.getElementById('comTable').style.display = "block";
    		else
    			document.getElementById('comTable').style.display = "none";
    	
    		} // clickCompany
    </script>
    
    
    <form name="form1" method="POST" action="order.php">
    <fieldset>
             <legend> Intestatario Servizio </legend>
    		<table>
    			<tr>
    			    <td width="25%"><div id="testo_piccolo2">Cognome:</div></td>
    			
    			    <td width="75%">
                        <input type="text" name="cognome" size="30" value="<?php echo $cognome?>" 
                             <?if (!$cognome) 
                            echo"style='background: #F2DDDD;border-top: 1px solid #992A2A;border-left: 
                            1px solid #992A2A;'"?>
                        />
                        
                    </td>
    			</tr>
    			<tr>
    			    <td width="25%"><div id="testo_piccolo2">Nome:</div></td>
    			
    			    <td>
                        <input type="text" name="Name" size="30" maxlength="50" value="<?php echo $Name?>" 
                             <?if (!$nameV) 
                            echo"style='background: #F2DDDD;border-top: 1px solid #992A2A;border-left: 
                            1px solid #992A2A;'"?>
                        />
             
                    </td>
    			</tr>
                   </table>
    	</fieldset>
    
    
    
    <input type="checkbox" name="Fatturazione" onclick="clickCompany(this);">
    		Da selezionare solo se l'intestatario della Fattura è diverso dall'intestatario del Servizio.
    	</div>
    	
    	<fieldset>
    		<legend> Intestatario Fattura </legend>
    		<table border="0" Id="comTable">
    			<tr>
    			    <td width="25%"><div id="testo_piccolo2">Ragione Sociale:</div></td>
    			
    			    <td width="75%"><input type="text" name="ragSoc_if" size="30" value="" /> </td>
    			</tr>
    			<tr>
    			    <td width="25%"><div id="testo_piccolo2">Nome:</div></td>
    			
    			    <td><input type="text" name="Name_if" size="30" value="" /></td>
    			</tr>
    			<tr>
    				<td width="25%"><div id="testo_piccolo2">Cognome:</div></td>
    			
    			    <td><input type="text" name="Surname_if" size="30" value=""  /></td>
    			</tr>
    </table>
    	</fieldset>
    
    	<div class="center">
            <input type="image" class="submit2" style="background: #fff;" src="images/button_continue.gif" 
                alt="Continua" title=" Continua "
            />
        </div>
    	
        </form>
    	
        <script>
        	document.getElementById('comTable').style.display = "none";
        </script>

  2. #2
    Una possibile soluzione potrebbe essere quella di delegare al css la non visualizzazione della tabella, togliendo cosi l'ultima riga che hai postato, e mettendo.
    codice:
    <table border="0" id="comTable" style="display:none">
    visto che di default è nascosta, per risolvere il tuo problema io farei un'ulteriore modifica delegando al php (anche se suona male dirlo) la visualizzazione della tabella, nel senso che se la tabella deve essere visibile perchè l'utente ha completato i campi, ma erratamente allora ti passsi una variabile fittizia (ad esempio tableVisible) e la gestisci cosi:
    Codice PHP:
    <table border="0" id="comTable"  style="display:<?php echo(isset($_GET['tableVisible']))?'block':'none'?>">
    in questo modo la tua tabella rimarrà nascosta quando l'utente andrà sulla pagina per la prima volta,ma visibile se torna a causa di un errore...

    «Non esiste mondo fuor dalle mura di Verona; ma solo purgatorio, tortura, inferno. Chi è bandito di qui, è bandito dal mondo e l'esilio dal mondo è morte...»
    - William Shakespeare -

  3. #3
    grazie dvjack, funziona perfettamente e il tuo ragionamento non fa una grinza.
    ma non ho capito bene il funzionamento di questa riga di codice:
    codice:
    <?php echo(isset($_GET['tableVisible']))?'block':'none'; ?>
    praticamente senza utilizzare un if sei riuscito lo stesso nell'intento, potresti spiegarmi il funzionamento di questa sintassi?
    e grazie comunque, per l'aiuto.

  4. #4
    esatto è una forma abbreviata, starebbe a significare:
    Codice PHP:
    if(isset($_GET['tableVisible'])){echo 'block';}
    else{echo 
    'none';} 
    «Non esiste mondo fuor dalle mura di Verona; ma solo purgatorio, tortura, inferno. Chi è bandito di qui, è bandito dal mondo e l'esilio dal mondo è morte...»
    - William Shakespeare -

  5. #5
    perfetto, memorizzato.
    grazie per la lezione e la disponibilità.
    a presto

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.