Newsgroup: it.comp.www.php
Titolo: richiesta aiuto per comportametno inspiegabile del codice

richiesta aiuto per comportametno inspiegabile del codice
qualcuno mi può analizzare il codice sottostante:
in sostanza nell'onkeypress il programma deve controllare se inserire numeri
o lettere nei rispettivi campi, ma non funziona molto bene, anche se non
capisco il problema
(la funzione javascritp applicata a dei campi TEXT in frontpage mi funziona,
ma con questo codice mi da problemi)
PROGRAMMA IN FRONTPAGE
<form method="get" name="f">
numerico<input type="text" name="t1" onkeypress="return
numeralsOnly(event)"/><br/>
stringa <input type="text" name="t2" onkeypress="return
lettersOnly(event)"/><br/>
PROGRAMMA IN PHP
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
       <title>Title here!</title>
</head>
<body>
<script type="text/javascript">
function numeralsOnly(evt)
{
  evt = (evt) ? evt : event;
  var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ?
evt.keyCode : ((evt.which) ? evt.which : 0));
  if (charCode > 31 && (charCode < 48 || charCode > 57))
 {
   alert("Puoi inserire solo numeri!");
    return false;
  }
 return true;
}
function lettersOnly(evt)
{
  evt = (evt) ? evt : event;
  var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ?
evt.keyCode : ((evt.which) ? evt.which : 0));
  if (charCode > 31 && (charCode < 65 || charCode > 90) && (charCode < 97 ||
charCode > 122))
 {
    alert("Puoi inserire solo lettere!");
    return false;
  }
  return true;
}
</script>
<?php
//--------------------------------------------------------------------------
----
//      INSERISCE UN CAMPO DI EDIT (CAMBIA COLORE AL SUO SFONDO QUANDO HA IL
FOCUS)
//   InsertEditField("digita il tuo Nome","Nome","prova","60",10);
//--------------------------------------------------------------------------
----
function InsertEditField($DataType,$FieldName)
{
 if ($DataType='integer')
  echo "<input type='TEXT' name='$FieldName' onkeypress='return
numeralsOnly(event)'>";
  else
 if ($DataType='string')
  echo "<input type='TEXT' name='$FieldName' onkeypress='return
lettersOnly(event)'>";
}
function Prova($Host,$User,$Password,$DBName,$TableName)
{
 $Query="select * from $TableName";
 //SI CONNETTE AD UNA TABELLA IN MY SQL
 $Connessione=mysql_connect($Host,$User,$Password);
 //SELEZIONA UN DATABASE IN MY SQL
 mysql_select_db($DBName,$Connessione);
 //CREA UNA QUERY SU UNA TABELLA DI UN DATABASE IN MY SQL
 $result=mysql_query($Query);
 //ottiene l'elenco dei campi
 $campi = mysql_list_fields($DBName,$TableName,$Connessione);
 //ottiene il totale dei campi
 $colonne = mysql_num_fields($campi);
 //creo la form
 echo "<form>";
 for ($i=0; $i<$colonne; $i++)
 {
  $TipoCampo=mysql_field_type($campi, $i);
  if ($TipoCampo='int')
   InsertEditField("integer","Campo $i");
  else
  if ($TipoCampo='string')
   InsertEditField("string","Campo $i");
 }
 //chiudo il tag della form
 echo "<input type='submit' value='Invia'>";
 echo "<input type='reset' value='Annulla'>";
 echo "</form>";
}
  Prova('localhost','utente','password','db','tabella');
?>
</body>
</html>

 </html>
ho letto solo una parte del codice ma..
if($DataType == 'integer')
-- 
www.iuz-lab.info