Dicho esto os explico:
Tengo un formulario de contacto el cual se envía correctamente y me llegan los datos que el cliente a puesto, pero tiene un problema, y es que al hacer click en enviar se queda "pensando" y no hace nada mas, sin embargo el correo llega correctamente al destino. Debería mostrar un mensaje de "enviado correctamente" pero no es asi.
El formulario original corre bajo flash 6 y actionscript 1.0, he logrado que funcione con flash 8 y actionscript 2.0; pero creo que tengo un error al recibir la respuesta desde el archivo php, por lo que no muestra la respuesta.
pongo a continuación los códigos:
esta es la función que comprueba el formulario:
Código :
onClipEvent (load) {
function enviarFormulario() {
//ruta = this;
// compruebo que el campo nombre y apellidos no esté vacío
if (isBlank(nombreV)) {
_parent.submitForm_mc.avisar("Es necesario rellenar el campo Nombre y Apellidos");
Selection.setFocus("nombreV");
Selection.setSelection(0, 0);
} else {
// compruebo que el correo electrónico no esté vacío
if (isBlank(emailV)) {
_parent.submitForm_mc.avisar("Es necesario rellenar el campo Correo Electrónico");
Selection.setFocus("emailV");
Selection.setSelection(0, 0);
} else {
// compruebo que el correo electrónico esté bien escrito
if (!isMail(emailV)) {
_parent.submitForm_mc.avisar("El campo Correo Electrónico no es correcto");
Selection.setFocus("emailV");
Selection.setSelection(0, emailV.length);
} else {
// como localidad y empresa y teléfono no son obligatorios no compruebo nada
if (isBlank(consultaV)) {
_parent.submitForm_mc.avisar("Es necesario rellenar el campo Consulta");
Selection.setFocus("consultaV");
Selection.setSelection(0, 0);
} else {
if (isBlank(telV)) {
datosUser.telefono = "No cumplimentado";
} else {
datosUser.telefono = telV;
}
if (isBlank(localidadV)) {
datosUser.localidad = "No cumplimentado";
} else {
datosUser.localidad = localidadV;
}
if (isBlank(empresaV)) {
datosUser.empresa = "No cumplimentado";
} else {
datosUser.empresa = empresaV;
}
datosUser.nombre = nombreV;
datosUser.email = emailV;
datosUser.localidad = localidadV;
datosUser.empresa = empresaV;
datosuser.telefono = telV;
datosUser.consulta = consultaV;
datosUser.sendAndLoad ("contact_form.php",respuesta,"GET");
// el php debe responder status=formOk si el envío se hizo bien
}
}
}
}
}
}
La que lo valida:
Código :
// función para validar el email ------------------------------------------
_global.isMail = function(arg) {
// compruebo que no este vacía la cadena exaustivamente
if (arg == "" || arg == null || arg == "null" || arg == undefined || arg == "undefined") {
return false;
//trace("cadena vacía");
// compruebo si hay una arroba y solo una
} else if (arg.indexOf("@") == -1 || arg.indexOf("@") != arg.lastIndexOf("@")) {
return false;
//trace("núm de @ erróneo");
} else {
// dividimos la direccion en usuario y dominio
var partes = arg.split("@");
var usuario = partes[0];
var dominio = partes[1];
// compruebo usuario
if (usuario.length<1) {
return false;
//trace("usuario vacío");
} else {
// compruebo si hay algún carácter raro
var caracteresProhibidos = new Array("º", "ª", "!", "#", "$", "%", "&", "¬", "/", "(", ")", "=", "?", "¿", "¡", ",", ";", ":", "[", "]", "{", "}", "á", "é", "í", "ó", "ú", "Á", "É", "Í", "Ó", "Ú");
var numCaracteresProhibidos = 0;
for (var k = 0; caracteresProhibidos[k]; k++) {
if (usuario.indexOf(caracteresProhibidos[k]) != -1) {
numCaracteresProhibidos++;
}
}
if (numCaracteresProhibidos>0) {
//trace("caracteres prohibidos encontrados");
return false;
// compruebo dominio
} else if (dominio.indexOf(".") == -1 || dominio.length<1) {
return false;
//trace("núm de puntos erróneo en dominio");
} else {
var partes_dominio = dominio.split(".");
var extension = partes_dominio[partes_dominio.length-1];
// compruebo que el dominio tenga como mínimo 3 chr antes del punto
if (dominio.length-extension.length<4) {
//trace("dominio menor de 3 chr");
return false;
} else if (extension.length<2 || extension.length>4) {
//trace("longitud de extension errónea");
return false;
} else {
//trace("mail correcto");
return true;
}
}
}
}
};
// función para comprobar si un campo está en blanco
_global.isBlank = function(valor) {
if (valor == "" || valor == undefined || valor == null || valor.length<1) {
return true;
} else {
return false;
}
};
y la que recibe la respuesta:
Código :
// objetos loadvars
_global.datosUser = new LoadVars();
_global.respuesta = new LoadVars();
respuesta.onLoad = function() {
if (respuesta.status == "formOk") {
_parent.submitForm_mc.avisar("envio correcto");
formTitles.formulario_mc.submitForm_mc.submit.enabled = true;
cleanForm ();
}
else {
_parent.submitForm_mc.avisar("Fallo en el envío");
trace ("Error de servidor");
}
};
La verdad no se dónde está el error si pueden ayudarme se lo agradezco. Si necesitan algún datos más diganmelo.
Un saludo y hasta pronto
