Salve, da 2 gg sbatto la testa su qualcosa che mi sta sembrando assurdo.
Ho un form di registrazione in cui l'utente inserisce la partita iva. Effettuo prima di tutto i controlli standard sulla partiva iva, cioè l'esistenza (se il campo è vuoto), la lunghezza(11) e i tipi di caratteri inseriti (accettando sono numeri ovviamente). Se la sequanza di caratteri supera quasti primi test verifico se la partita iva inserita non risulta già presente nel database (mysql). uso una variabile variabile LoadVars() e il metodo sendAndLoad("file.php", myLoadVars, "POST")...Il file php (testato e funzionante) mi restituisce una variabile che può avere 3 valori:
1)ok -> p.iva non risulta in archivio
2)exist -> p.iva esistente
3)errore_query -> qualcosa è andato storto
Nel flash ho creato un input text di nome "iva " e un testo dinamico di nome "errore_iva " che mi segnale i risultati dei controlli. Inoltre c'è un bottone "controlla" che una volta schiacciato richiama la funzione controlla_campi_reg1()
******POSTO TUTTO IL CODICE******
var p_iva=new LoadVars();
function controlla_campi_reg1()
{
errore_iva="";
/*IVA*/
var var_iva:String=controlla_iva(iva.text);
if(var_iva=="errore1")
{
errore_iva="campo obbligatorio";
}
if((var_iva=="errore2") || (var_iva=="errore3"))
{
errore_iva="campo errato";
}
if(var_iva=="ok")
{
var_iva=ottieni_iva();
if(var_iva=="errore6")
{
errore_iva="errore caricamento";
}
if(var_iva=="exist")
{
errore_iva="p.iva già esistente";
}
if(var_iva=="errore_query")
{
errore_iva="errore query lettura";
}
if(var_iva=="ok")
dati_utente["iva"]=iva.text;
}
if(var_iva==undefined)
trace("p.iva indefinita");
else
trace("P:IVA = "+var_iva);
}
function controlla_iva(iv):String
{
num=["0" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9"];
var trovato:Boolean;
if(iv.length==0)
return "errore1";
else if(iv.length!=11)
return "errore2";
else//controllo se contiene caratteri non validi
{
for(i=0;i<11;i++)
{
trovato=false;
for(j=0;j<10;j++)
if(iv.charAt(i)==num[j])
{
trovato=true;
j=10;//velocizziamo
}
if(!trovato)
{
return "errore3";
}
}
return "ok";
}
}
function ottieni_iva()
{
p_iva["piva"]=iva.text;
p_iva.onLoad=function (success:Boolean)
{
if(success)//connessione a file esterno avvenuta con successo
{
if(this.loaded)
{
if(p_iva["result"]=="exist")
errore_iva="p.iva già esistente";
}
}
else
return "errore6"
};
p_iva.sendAndLoad("check_iva.php" , p_iva , "POST");
return p_iva["result"];
}
/***************RISULTATO STRANO************************/
Quando inserisco una p.iva che è già presente nel mio db (cioè check_iva.php ritorna exist ) segnalo l'errore tramite errore_iva="p.iva già esistente"; ma successivamente, grazie al trace, mi stampa p.iva indefinita grazie a queste righe di codice:
if(var_iva==undefined)
trace("p.iva indefinita");
else
trace("P:IVA = "+var_iva);
COME è POSSIBILE UNA COSA SIMILE??SE SOSTITUISCO QUESTE 2 RIGHE
if(p_iva["result"]=="exist")
errore_iva="p.iva già esistente";
con return p_iva["result"]
mi stampa sempre trace("p.iva indefinita");
....
...
![]()
VI SEMBRA POSSIBILE???NON è un problema di caricamento altrimenti
if(p_iva["result"]=="exist")
errore_iva="p.iva già esistente";
non funzionerebbe...cioè se riconosce il valore di p_iva["result"] confrontandolo (per prova) con "exist" nell'if, perchè se gli dico di ritornarmi direttamente p_iva["result"] non funziona?? Inoltre se provo a farmi stampare il valore de testo dinamico "errore_iva" dopo avergli assegnato "p.iva già esistente" non mi dà alcun valoreù
AIUTATEMI PER FAVORE PERCHE' NON HO CAPITO DOV'è L'ERRORE

Rispondi quotando