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