Evento onkeypress (Invio)

antonioantonio

Nuovo Utente
27 Set 2015
25
0
0
Ciao a tutti,

avevo postato questa messaggio nella sezione (HTML CSS):

sono nuovo del forum, ed anche dell'utilizzo dell'HTML. Volevo chiedere qualche consiglio riguardo a questo form:
codice HTML:

HTML:
<head>
       <title>Inserimento Barcode</title>
 </head>
<body>
<table border="0">  
  <tr>    
     <td align="center">Inserisci il Barcode</td>  
  </tr>  
  <tr>    
     <td>      
        <table align="center">        
             <form method="post" runat="server" action="inserisci.php" autocomplete="off">                            <tr>          
                 <td>BARCODE</td>          
                 <td> <input type="number" id="prova" min="10000000000000000000"                                                  name="barcode" value="" size="30" autocomplete="off" onKeyPress="">                          
                </td>        
               </tr>        
               <tr>          
                   <td></td>          
                   <td align="right"><input type="submit" name="submit" value="Inserisci">
              </td>        
               </tr>        
              </form>        
              </table>      
            </td>    
         </tr>
      </table>
   </body>
</html>

filomeni mi ha gentilmente suggerito una soluzione con javascript. Dicendomi che c'era il modo di ottenere lo stesso risultato anche con una soluzione in php...

questo è lo script javascript:

Codice:
<head>
<script type="text/javascript">
<!--
function conta() {
if (document.getElementById("prova").value.length < 20) {
alert("Il codice deve essere di 20 cifrei.");
document.getElementById("prova").focus();
return false;
}
else {
return true;
}
}
-->
</script>
</head>
<body>
<form action="inserisci.php" method="post" onsubmit="return conta();">
<input type="number" id="prova"  value="" />
<input type="submit" value="Inserisci" />
</form>

Volevo chiedere se qualcuno poteva suggerirmi la soluzione in php

Grazie in anticipo!
 
ciao
intanto una cosa, non è correttla forma
HTML:
<table>
<form><tr><td>...</td></tr></form>
</table>
ma
HTML:
<form>
<table>
<tr><td>...</td></tr>
</table>
</form>
poi, si è ottenibile quacosa del genere in php (del resto anche più sicuro), però ricorda che php è lato server e non client come js, quindi si deve operare in modo diverso
cioè una volta inserito il dato e premuto il submit nella parte php che riceve si controlla il dato inviato e se errato si riinvia la form vuoto
 
Ciao borgo italia
Grazie percla correzione suggerita!

Si a me va bene che, se il dato é incorretto , la form venga svuotata.....
Il problema è che non conosco il codice....
Tu puoi aiutarmi in merito ?
 
con il php è vero che è piu' sicuro però il controllo lo faresti in un secondo momento, ovvero dopo che hai cliccato viene fatto il controllo e poi ritorni al form. Con la soluzione javascript il controllo puoi farlo ancora prima di dare l'ok al passo successivo. dipende sempre da quello che ti occorre.
 
ciao
se non devi fare molte cose ti conviene mettere tutto in un'unica pagina
ecco uno schema
PHP:
<html>
<head>
<title>Inserimento Barcode</title>
</head>
<body>
<?php
if(isset($_POST[''])){
	$mes="";//metti un messaggio a stringa vuota
	$barcode=$_POST['barcode'];//leggi il barcode
	//fai il controllo, pero qui non so come sia fatto il barcode, devi costruire il pattern come ti serve
	$pattern = '/^[0-9]{20,30}$/';//composto solo di numeri, minimo 20 max 30
	if(!preg_match($pattern,$barcode)){
		//barcode errato
		$mes="il barcode inserito NON è corretto<br>";
	}else{
		//barcode giusto
		//fai quello che devi fare es. l'ibsert nel db
		$mes="il barcode inserito è stato inserti nel database<br>";
	}
	//mostri il messaggio
	echo $mes;
	//e torni al form dopo 3 secondi
?>
<script language="JavaScript" type="text/javascript">
<!--  
window.setTimeout ("location.href=('<?php echo $_SERVER['PHP_SELF']; ?>')", 3000);
 -->
</script>		
<?php
}else{
?>
<!-- .... -->
<form method="post" runat="server" action="<?php echo $_SERVER['PHP_SELF']; ?>" autocomplete="off">
	<table align="center"> 
		<tr><td colspan="2">nserisci il barcode</td></tr>
		<tr>        
			<td>BARCODE</td>          
    		<td><input type="number" id="prova" min="10000000000000000000" name="barcode" value="" size="30" autocomplete="off" onKeyPress=""></td>                          
		</tr>        
		<tr>          
			<td align="right"><input type="submit" name="inserisci" value="Inserisci"></td>        
		</tr>
	</table>    
</form>
<?php
}
?>
<!-- .... -->  
</body>
</html>
comunque se vuoi pui aggiungere anche il js, però soprattutto se devi fare un inserimento nel db sono essenziali i controllo lato server (php) perchè js è facilmente aggirabile
 
Ciao borgo italia,

grazie per il codice, anche se ho provato il tuo form ma....i messaggi non vengono restituiti.
C'è qualcosa che ho sbagliato io....semplicemente copiando/incollando il tuo codice?

Comunque il formato dei barcode è : numerico da 20 cifre

Grazie ancora
 
ciao
dimenticavo, se il barcode deve essere solo di 20 cifre (ne una di più ne una di meno) puoi modificare
PHP:
$pattern = '/^[0-9]{20,30}$/';
in
PHP:
$pattern = '/^[0-9]{20}$/';
per tua conoscenza, esempio
{20} solo 20
{20,} da minimo 20 in poi
{,20} da vuoto a massimo 20
 
Grazie davvero!

Adesso funziona perfettamente!
Grazie anche per le info su come impostare le quantità di caratteri ammessi nel campo barcode!!

Secondo te è possibile fare in modo che quando si apre la pagina il focus sia automaticamente impostato sul campo barcode e che, successivamente, questo non lo perda mai?

Anche qui in giro per il web ti raccontano la rava e la fava ..... ma vedo che non ne arrivano mai a una!!!!!
 

Discussioni simili