Io non ci sto capendo più niente.... riporto qui il codice...sperando di risolvere.
In pratica io dovrei obbligare l'utente a compilare i campi carat."$k" e convertire in ASCII tutti i caratteri speciali da lui inseriti in modo che non mi causino errori strani nel codice!
Sono giorni che batto la testa su questo argomento e non son riuscito ancora a risolverlo!
function valida_carat(oggetto,k)
{
var str=oggetto.value;
var re = /[/"$]/;
if((str!='') && (!(!re.test(str))))
{
alert('Inserire correttamente Caratteristiche Tecniche. I caratteri speciali /,",$ non sono ammessi.\n');
document.inserisci.conferma.disabled=1;
}
else { document.inserisci.conferma.disabled=0; }
}
<DIV id=rettangolo_car_tec>
<?PHP
$userQuery = mssql_query("SELECT carat1, carat2, carat3, carat4, carat5, carat6, carat7, T_orcadcis.carat8, carat9, carat10, carat11, carat12, carat13, carat14, carat15, tecnologia_costruttiva
FROM torca
WHERE (famiglia='$family') ",$link);
if (!$userQuery)
die("Impossibile visualizzare i dati delle tabelle : ".mssql_error());
$tot = mssql_num_rows($userQuery);
$a_row = mssql_fetch_row($userQuery);
$carat1 = $a_row[0];
$carat2 = $a_row[1];
$carat3 = $a_row[2];
$carat4 = $a_row[3];
$carat5 = $a_row[4];
$carat6 = $a_row[5];
$carat7 = $a_row[6];
$carat8 = $a_row[7];
$carat9 = $a_row[8];
$carat10 = $a_row[9];
$carat11 = $a_row[10];
$carat12 = $a_row[11];
$carat13 = $a_row[12];
$carat14 = $a_row[13];
$carat15 = $a_row[14];
$tec_costr = $a_row[15];
#
$query_note= mssql_query("SELECT traduzione_vista.campo FROM traduzione_vista WHERE ((nome_vista='$family') AND (descrizione='note')) ORDER BY traduzione_vista.indice",$link);
if (!$query_note) {
die("Impossibile associare la caratteristica Note alla famiglia selezionata : ".mssql_error());
$presenza_note=0;
}
$presenza_note=1;
$tot = mssql_num_rows($query_note);
$c_row = mssql_fetch_row($query_note);
#
if($c_row[0]=='') { echo $presenza_note=0;}
#
$query_incroc= mssql_query("SELECT traduzione_vista.descrizione, traduzione_vista.campo FROM traduzione_vista WHERE (nome_vista='$family') ORDER BY traduzione_vista.indice",$link);
if (!$query_incroc)
die("Impossibile visualizzare i dati delle tabelle : ".mssql_error());
$tot = mssql_num_rows($query_incroc);
$i=0;
$max=0;
print '<TABLE><TR><TD>';
print '<TABLE><TR>';
while (($i < $tot) and ($b_row = mssql_fetch_row($query_incroc)))
{
$variabile='desc_carat'.$i;
$$variabile=$b_row[0];
$campo = $b_row[1];
if ($a_row[$i]=='') $a_row[$i]=' ';
if ($$variabile == 'note') { $et_note=$$variabile;
$cp_note=$$campo;
$i++;
$y=$i;
}
else {
$k=$i+1;
print '<TD><TABLE><TR><TD> '.$$variabile.' </TD></TR><TR><TD><INPUT size=20 maxlength=100 name="carat'.$k.'" onBlur=" convertToLowercase(this);valida_carat(th
is,'.$k.')" ></TD></TR></TABLE>';
$i++;
$max++;
}
if ($max > 3)
{
print '</TD></TR></TABLE>';
print '
';
print '<TABLE><TR>';
$max=0;
}
}
if ($tec_costr=='') $tec_costr=' ';
print '</TD></TR></TABLE>';
if($presenza_note=='1') {
print '<TABLE><TR><TD><TABLE><TR><TD>'.$et_note.': (max 100 crt.)</TD></TR><TR><TD><TEXTAREA tabindex=88 name="carat'.$y.'" rows="5" cols="90" wrap="virtual" onBlur=" convertToLowercase(this);valida_carat(th
is,'.$y.')" ></TEXTAREA>
';
print '</TD></TR></TABLE>
';
}
print '<TR><TD><TABLE><TR><TD>Tecnologia Costruttiva: </TD><TD><INPUT tabindex=88 size=50 maxlength=100 name="tec_costr" onblur="this.value=this.value.toLowerCase()"></TD></TR></TABLE>';
PRINT '</TD></TR></TABLE><table><tr><td>
<input type="SUBMIT" value="Inserisci" name="conferma"></td><td align="left"> <input type="RESET" value=" Annulla" name="RESET" ></td></tr></table>';
print '</TD></TR></TABLE>';
?>
</DIV>