Form - Tutti i campi obbligatori

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
salve. ho questo script in javascript che mi controlla il campo se è stato inserito o no..

ma io vorrei fare un po prima invece di scrivere tutti gli if etc..

e alcune volte controllo anche se la data inserita deve essere 18-04-2012,
e alcune volte ho dei checkbox ..

invece cosi ... mettere un Repilogo di tutti campi obbligatori.?

ecco lo script.. lo script non è mio ma e di un esempio che ho trovato sulla rete.
PHP:
<script language="javascript">
	function CheckForm(form){
		//Avvio il controllo dei campi
		var booReturn = true;
		//strMessage
		var strMessage = "Attenzione, compilare i seguenti campi:\n"
		
		//Controllo
		if(form.strTitolo.value == ""){
			strMessage += "*Titolo\n";
			booReturn = false;
		}
	
	
		if(form.strStato.value == ""){
			strMessage += "*strStato\n";
			booReturn = false;
		}
		
		//Ritorno booReturn
		if(booReturn == false){
			alert (strMessage);
		}
		return booReturn;
	}
	</script>

grazie mille.
buona giornata.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao
potresti aggiungere un ciclo su tutti gli elementi e verificarli

piu o meno cosi

Codice:
<script language="javascript">
    function CheckForm(form){
        // conti gli elementi del form    
        var elementi = form.elements.length;
        // li cicli
        for(var i = 0; i < elementi; i++){
            // verifichi che ognuno contenga qualcosa
            if(form.elements[i].value.length == 0){                
               // altrimenti avvisi ed esci
                alert("Tutti i campi sono obbligatori");
                return false;
            }
        }
        
        // poi puoi andare avanti con altri controlli
    }
</script>
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Ciao
potresti aggiungere un ciclo su tutti gli elementi e verificarli

piu o meno cosi

Codice:
<script language="javascript">
    function CheckForm(form){
        // conti gli elementi del form    
        var elementi = form.elements.length;
        // li cicli
        for(var i = 0; i < elementi; i++){
            // verifichi che ognuno contenga qualcosa
            if(form.elements[i].value.length == 0){                
               // altrimenti avvisi ed esci
                alert("Tutti i campi sono obbligatori");
                return false;
            }
        }
        
        // poi puoi andare avanti con altri controlli
    }
</script>

si cosi va bene.. solo che anche se ho inserito tutti mi dice sempre di inserire i dati come posso fare che quando è tutto pieno posso far inserire i dati.


PS: Non mi piace jquery..scusate molto..

Ma mi va bene questo script ..

Grazie mille..
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
si cosi va bene.. solo che anche se ho inserito tutti mi dice sempre di inserire i dati come posso fare che quando è tutto pieno posso far inserire i dati.


PS: Non mi piace jquery..scusate molto..

Ma mi va bene questo script ..

Grazie mille..

Ti ho sistemato lo script e fatto un esempio:

Codice:
<script language="javascript">
    function CheckForm(form){
        // conti gli elementi del form    
        var elementi = form.elements.length;
        // li cicli
        for(var i = 0; i < elementi; i++){
            // verifichi che ognuno contenga qualcosa
            if(form.elements[i].value.length == 0){                
               // setti error se manca un elemento del form
                var error = true;
            }
        }
     //controllo error e else per non ripetere gli alert
       if(!error){ form.submit(); }else{ alert("Tutti i campi sono obbligatori"); }
        
        // poi puoi andare avanti con altri controlli
    }
</script>
<form action='lol.php' method='POST' id='test'>
<input type='text' id='asd'>
<input type='text' id='asd2'>
<input type='text' id='asd3'>
<input type='button' onclick="CheckForm(this.form)" value='cane'></form>
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ok, ho provato mille modi ma no fa..

ansi ho dovuto fare i controlli lato server perché lo javascript .. controllava a meta .. forse per via del form che velo posto:
PHP:
//Form aggiunta news
if($action == "aggiungi"){
	$strStato  = (isset($_POST['strStato'])) ? trim ($_POST['strStato']): '';
	
	if(isset($_POST["submit"]))
	{
	
	//Recupero tutti dati
	
	$intNewsID = (isset($_POST['intNewsID'])) ? trim ($_POST['intNewsID']): '';
	$dtmPubblicazione = (isset($_POST['strData'])) ? trim ($_POST['strData']): ''; 
	$strStato  = (isset($_POST['strStato'])) ? trim ($_POST['strStato']): '';
	$strTitolo = (isset($_POST['strTitolo'])) ? trim ($_POST['strTitolo']): '';
	$strTesto = (isset($_POST['strTesto'])) ? trim ($_POST['strTesto']): '';
       $dtmPubblicazione = $_POST["strData"];
       $data_explode = explode('-', $dtmPubblicazione); 
       $dtmPubblicazione = "".$data_explode[2]."".$data_explode[1]."".$data_explode[0]."";



	
	if (!get_magic_quotes_gpc()) {
		
		$strTitolo = addslashes($strTitolo);
		$strTesto = addslashes($strTesto);
		$strStato  = addslashes($strStato);
		$dtmPubblicazione = addslashes($dtmPubblicazione);
	}
	
	if(empty($strTitolo))
	{
		$error = "Non hai inserito il titolo";
	}elseif(empty($strTesto))
	{
	$error = "Non hai inserito il testo";
	}
	elseif(empty($strStato))
	{
	$error = "Non hai inserito lo stato";
	}elseif(empty($dtmPubblicazione))
	{
	$error = "Non hai inserito la data";
	}else
	{
	
		$strSQL = mysql_query("INSERT INTO news ("
				. "strTitolo,"
				. "strTesto,"
				. "strStato,"
				. "dtmPubblicazione) VALUES("
				. "'$strTitolo',"
				. "'$strTesto',"
				. "'$strStato',"
				. "'$dtmPubblicazione')") or die(mysql_error());
		$msg = "fatto";
		$msg .= "<br><a href='index.php?m=news'>Torna indietro</a>";
				
	}
	}
	
	?>
<script language="javascript">
    function CheckForm(form){
        // conti gli elementi del form    
        var elementi = form.elements.length;
        // li cicli
        for(var i = 0; i < elementi; i++){
            // verifichi che ognuno contenga qualcosa
            if(form.elements[i].value.length == 0){                
               // setti error se manca un elemento del form
                var error = true;
            }
        }
     //controllo error e else per non ripetere gli alert
       if(!error){ form.submit(); }else{ alert("Tutti i campi sono obbligatori"); }
        
        // poi puoi andare avanti con altri controlli
    }
</script>
	<h1>Aggiungi news</h1>
	<?php
	if ( isset ( $error ) )	{ echo '			<p class="error">' . $error . '</p>' . "\n";	}	
	if ( isset ( $msg ) )	{ echo '			<p class="msg">' . $msg . '</p>' . "\n";	} else {
	?>
    <form method="post" action="index.php?m=news&action=aggiungi" >
    <table width="100%" border="1">
  <tr>
    <td>
Titolo:&nbsp;</td>
    <td><input type="text" name="strTitolo" value="<?php if(isset($strTitolo)){echo $strTitolo;}else { echo isset($strTitolo); }?>" size="50" maxlength="100" /></td>
  </tr><tr>
    <td>
Testo:&nbsp;</td>
    <td><textarea name="strTesto" cols="70" rows="20"><?php if(isset($strTesto)){echo $strTesto;}else { echo isset($strTesto); }?></textarea></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><label>
      <input type="radio" name="strStato" value="1" <?php if($strStato=='1') echo 'checked="checked"'?> />
      Pubblica</label>
      <label>
        <input type="radio" name="strStato" value="2" <?php if($strStato=='2') echo 'checked="checked"'?>/>
    Nascondi</label></td>
  </tr>
  <tr>
    <td>Data:&nbsp;</td>
    <td><input type="text" name="strData" value="<?php echo date("d-m-Y");?>" size="50" maxlength="100" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="submit" value="Inserisci" />
    </td>
  </tr>
</table>
</form>
	<?php
	}
}

come posso fare?

non posso usare type="button" mi serve per forsa submit e il nome del form.

idee?

grazie mille.
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
Devi dare un id o un name al form (e agli elementi magari):
Codice:
<form method="post" action="index.php?m=news&action=aggiungi" id='mio_id'>

E usare un button non un submit richiamando la funzione sul click

Codice:
<input type='button' onclick="CheckForm(this.form)" value='invia'>

Infatti se copi e incolli il codice che ho messo sopra in una pagina funziona perfettamente :)


"per forza submit" Perchè scusa? Il submit avviene in automatico se tutti i campi ci sono (vedi la funzione)
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
@Nefyt
l'input submit lo usa poi per fare i controlli lato server con php

@luigi777
puoi provare a richiamare la funzione nel tag form con onsubmit

HTML:
<form method="post" onsubmit="CheckForm(this)" action="index.php?m=news&action=aggiungi" >

e nel codice javascript dopo l'alert metti return false (dovrebbe bloccarti l'invio del form)

a questo punto dovrai però togliere il submit() dalla funzione
 

Nefyt

Utente Attivo
17 Apr 2012
1.102
0
0
@Nefyt
l'input submit lo usa poi per fare i controlli lato server con php

@luigi777
puoi provare a richiamare la funzione nel tag form con onsubmit

HTML:
<form method="post" onsubmit="CheckForm(this)" action="index.php?m=news&action=aggiungi" >

e nel codice javascript dopo l'alert metti return false (dovrebbe bloccarti l'invio del form)

a questo punto dovrai però togliere il submit() dalla funzione
Il submit si trova qui se tutti i campi sono compilati:
Codice:
if(!error){ form.submit(); }else{ alert("Tutti i campi sono obbligatori"); }
perciò non vedo qual'è il problema

Se ti riferisci a if(isset($_POST["submit"])), potrebbe semplicemente cambiare variabile post
oppure non utilizzare un operatore ternario su tutte le variabili
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
L form controllo con il for "Tutti i dati sono richiesti". PHP 2
D Selezionare tutti i checkbox di un form con jQuery jQuery 1
S passare un valore da un form a un file .php con metodo post PHP 4
K Form che manda dati doppi PHP 1
K Problema form update PHP 2
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
K form Inserimento record mysql PHP 2
I Form con selettore HTML e CSS 0
K [php]form invio dati PHP 0
G form invio multiplo con checkbox PHP 12
nivaria.achinet Intercettare form solo dopo invio Javascript 1
D Form contatti non funzionante HTML e CSS 0
A Stampare dati da form PHP 15
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
I Form HTML e CSS 17
otto9due $_FILE non passa i dati dal form PHP 1
M Form: come tornare ai campi già compilati dopo invio PHP 1
G Invio form con PHP PHP 3
felino Form action costum e parametri in queryString WordPress 1
M Come recuperare molteplici input form PHP 1
M Collegamento tra form html e script php PHP 4
L form immagini per il database PHP 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
L inserimento form dati multipli ? PHP 0
L Problemi form Pagina php HTML e CSS 3
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
D Devo far funzionare un form di contatti PHP 4
B form gestione input PHP 2
V PHP form intersecate PHP 0
8 Javascript - PDF Form Javascript 0
J Form inserimento dati in database Ajax 1
E Gestione profilo utente tramite Form PHP 3
R [C#] Form principale si blocca mentre un altro Thread lavora .NET Framework 0
M Problema con controllo form in real time jQuery 6
D Form validazione Javascript 2
R form recovery pass PHP 0
V Symfony e i form PHP 3
M form con checkbox PHP 8
S come aggiustare un form di contatto? HTML e CSS 3
F query e form con select multipla PHP 17
MarcoGrazia Verifica di una stringa o di un nome proveniente da form Snippet PHP 0
A Inserimento dati nel database tramite form + altre operazioni PHP 18
websilvia Contact form using Bootstrap 3.3.4 PHP 8
Alex_70 Button non funziona nella form PHP 2
C Form email php su pagina index.html? PHP 21
W Rinominare Documenti Con Form Asp Classic ASP 9
S Invio email da form PHP 8
L form multipla php sql,errore in inserimento MySQL 0

Discussioni simili