I´m try to creat a flash form with jsp. I´m using as3, my main problem is that , i send my vars but i can´t receive a reply from the server. I´m using this code to send the form
var loader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("http://www3.myurl.pt/shared/MainForms");
var variables:URLVariables = new URLVariables();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
req.method = URLRequestMethod.POST;
var senderRpl:String="No";
txEscola.tabIndex = 1;
txMorada.tabIndex = 2;
txPostal.tabIndex = 3;
txTelef.tabIndex = 4;
txTelem.tabIndex = 5;
txEmail.tabIndex = 6;
txName.tabIndex = 7;
cb.tabIndex = 8;
//--------------Set listener fot textfield changes
txEscola.addEventListener(Event.CHANGE, txErrorCheck);
txMorada.addEventListener(Event.CHANGE, txErrorCheck);
txPostal.addEventListener(Event.CHANGE, txErrorCheck);
txTelef.addEventListener(Event.CHANGE, txErrorCheck);
txTelem.addEventListener(Event.CHANGE, txErrorCheck);
txEmail.addEventListener(Event.CHANGE, txErrorCheck);
txName.addEventListener(Event.CHANGE, txErrorCheck);
function txErrorCheck(event:Event):void {
if (txError.text.length>0) {
txError.text = "";
}
}
//--------------Set checkbox
cb.addEventListener(MouseEvent.CLICK,setReply);
function setReply(event:Event):void {
senderRpl="Yes";
}
//--------------Set up form buttons
//ddCountry.addEventListener(Event.CHANGE, setLocation);
butSend.addEventListener(MouseEvent.CLICK, sendForm);
butSend.txTitle.text="SUBMIT";
butReset.addEventListener(MouseEvent.CLICK, resetForm);
butReset.txTitle.text="RESET";
//--------------Validate fields and submit form
function sendForm(evt:MouseEvent):void {
if (txEscola.text.length<=0) {
txError.text = "** NOME DA ESCOLA REQUERIDO **";
} else if (!isValidEmail(txEmail.text)) {
txError.text = "email inválido";
} else if (txMorada.text.length<=0) {
txMorada.text = "** MORADA REQUERIDA **";
} else if (txPostal.text.length<=0) {
txPostal.text = "** CÓDIGO POSTAL REQUERIDO **";
} else if (txTelef.text.length<=0) {
txTelef.text = "** NUMERO DE TELEFONE REQUERIDO **";
} else if (txTelem.text.length<=0) {
txTelem.text = "** NUMERO DE TELEMÓVEL REQUERIDO **";
} else if (txName.text.length<=0) {
txName.text = "** NOME DA PESSOA REQUERIDO **";
} else {
mcLoader.gotoAndPlay(2);
variables.name = txName.text;
variables.email = txEmail.text;
variables.escola = txEscola.text;
variables.morada = txMorada.text;
variables.postal = txPostal.text;
variables.telef = txTelef.text;
variables.telem = txTelem.text;
variables.id = "toyota";
variables.cfg = "reutilizar";
variables.rpl = senderRpl;
req.data = variables;
loader.load(req);
loader.addEventListener(Event.COMPLETE, receiveLoad);
}
}
function receiveLoad(evt:Event):void {
if (evt.target.data.retval == 1) {
mcLoader.gotoAndStop(25);
} else {
mcLoader.gotoAndStop(1);
txError.text="** ERRO A MANDAR O MAIL **";
}
}
//--------------Reset form
function resetForm(evt:MouseEvent):void {
txName.text="";
txEmail.text="";
txEscola.text="";
txMorada.text="";
txPostal.text="";
txTelef.text="";
txTelem.text="";
cb.selected=false;
//locate="";
//ddCountry.selectedIndex=0;
}
//--------Validate email address
function isValidEmail(email:String):Boolean {
var emailExpression:RegExp = /^[a-z][\w.-]+@\w[\w.-]+\.[\w.-]*[a-z][a-z]$/i;
return emailExpression.test(email);
}
stop();
And for receiving a reply from the server i´m using this code
import flash.external.ExternalInterface;
import flash.events.Event;
function getTextFromJavaScript(str:String):void {
//received_ti.text = "From JavaScript: " + str;
if (str == "true") {
gotoAndStop(3);
} else if (str == "false") {
gotoAndStop(4);
}
}
ExternalInterface.addCallback("sendTextToFlash", getTextFromJavaScript);