Comunidad de diseño web y desarrollo en internet online

Condicionales múltiples en formulario

Citar            
MensajeEscrito el 10 Nov 2012 12:34 pm
Buenos días,
estoy realizando un formulario en cinco idiomas, el cuál tiene cuatro campos de texto a rellenar por el usuario, si se deja un campo de texto sin rellenar aparece un mensaje de error con el siguiente texto: "Es obligatorio rellenar todos los campos. Pulsa aquí para seguir con el formulario de contacto. Gracias.", y si se rellenan todos los campos aparece un mensaje notificando lo siguiente: "Su mensaje ha sido enviado con éxito. Nos pondremos en contacto con usted lo antes posible. Gracias. Pulsa aquí para mandar otro mensaje."

El problema que tengo es que no sé como programar el segundo condicional "} else {" con el mensaje, en los varios idiomas que esta la web, diciendo lo siguiente:"Su mensaje ha sido enviado con éxito. Nos pondremos en contacto con usted lo antes posible. Gracias. Pulsa aquí para mandar otro mensaje."

_parent.envoi_btn.onPress = function() {
pressBtnForm.start();
var envoi = new LoadVars();
if ((sujet_txt.text == "TELÉFONO") or (mail_txt.text == "E-CORREO") or (nomprenom_txt.text == "NOMBRE") or (message_txt.text == "MENSAJE") or (_root.mvMenu.mbEspañol.enabled.false = _root.idioma2 == "es")) {
error("Es obligatorio rellenar todos los campos. Pulsa aquí para seguir con el formulario de contacto. Gracias.");
}else if ((sujet_txt.text == "TELEFON") or (mail_txt.text == "E-POST") or (nomprenom_txt.text == "NOMEN") or (message_txt.text == "MELDUNG") or (_root.mvMenu.mbAleman.enabled.false = _root.idioma2 == "al")) {
error("Bitte füllen Sie alle Felder aus. Klicken Sie hier um das Kontakt-Formular gehen. Danke.");
}else if ((sujet_txt.text == "TÉLÉPHONE") or (mail_txt.text == "E-COURRIER") or (nomprenom_txt.text == "NOM") or (message_txt.text == "MESSAGE") or (_root.mvMenu.mbFrances.enabled.false = _root.idioma2 =="fr")) {
error("S'il vous plaît remplir tous les champs. Cliquez ici pour accéder au formulaire de contact. Merci.");
}else if ((sujet_txt.text == "PHONE") or (mail_txt.text == "E-MAIL") or (nomprenom_txt.text == "NAME") or (message_txt.text == "DISPATCH") or (_root.mvMenu.mbIngles.enabled.false = _root.idioma2 == "en")) {
error("Please fill in all fields. Click to go to the contact form. Thank you.");
}else if ((sujet_txt.text == "TELEFONO") or (mail_txt.text == "E-POSTA") or (nomprenom_txt.text == "NOME") or (message_txt.text == "MESSAGGIO") or (_root.mvMenu.mbItaliano.enabled.false = _root.idioma2 =="it")) {
error("Si prega di compilare tutti i campi. Clicca per andare al modulo di contatto. Grazie.");

} else {
envoi.sujet = sujet_txt.text;
envoi.nomprenom = nomprenom_txt.text;
envoi.mail = mail_txt.text;
envoi.msg = message_txt.text;
envoi.sendAndLoad("mail.php", envoi, "POST");
effacer();
error("Su mensaje ha sido enviado con éxito. Nos pondremos en contacto con usted lo antes posible. Gracias. Pulsa aquí para mandar otro mensaje.");
}
};

Por Stephane_Kelian

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Nov 2012 12:32 pm
Quizá effacer mueve a otro fotograma, por eso no funciona el truco de ponerlo en la función de error. Mira si puedes moverte a otro fotograma donde tengas el mensaje y un botón que simplemente te devuelva al fotograma anterior (conde está el formulario)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Nov 2012 10:34 am
Gracias por responder Jorge,
Te comento, yo empezé con esta estructura con la condición del mensaje únicamente en un idioma el español, y funciona perfectamente, el problema me surge al incluir en la condición los diferentes idiomas:

function effacer() {
sujet_txt.text = "TELÉFONO";
mail_txt.text = "E-CORREO";
nomprenom_txt.text = "NOMBRE";
message_txt.text = "MENSAJE";
}

_parent.envoi_btn.onPress = function() {
pressBtnForm.start();
var envoi = new LoadVars();
if ((sujet_txt.text == "TELÉFONO") or (mail_txt.text == "E-MAIL") or (nomprenom_txt.text == "NOMBRE") or (message_txt.text == "MENSAJE")) {
error("Es obligatorio rellenar todos los campos. Pulsa aquí para seguir con el formulario de contacto. Gracias.");
} else {
envoi.sujet = sujet_txt.text;
envoi.nomprenom = nomprenom_txt.text;
envoi.mail = mail_txt.text;
envoi.msg = message_txt.text;
envoi.sendAndLoad("mail.php", envoi, "POST");
effacer();
error("Su mensaje ha sido enviado con éxito. Nos pondremos en contacto con usted lo antes posible. Gracias. Pulsa aquí para mandar otro mensaje.");
}
};

Por Stephane_Kelian

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Nov 2012 12:22 pm
Tu código es lo que se llama "spaghetti", es decir largo, repetitivo y en líneas generales ineficiente. Por eso agregar un idioma (y ni que decir varios) es complicado. Tenlo en cuenta para la proxima. En el else, antes de blanquear los campos de texto, pon la ristra de if mirando en que idioma est[a uno de los campos, cualquiera, y luego otra ristra de if para poner el mensaje en el idioma adecuado, un poco lo mismo que hiciste en la primera parte.
Si tienes tiempo y sabes lo que es un Array y un objeto, exploramos algo mejor hecho

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 17 Nov 2012 10:14 am
Este es el código definitivo que he realizado, sólo he subido el código en dos idomas para que no se tan extenso,
funciona bastante bien, sólo surge un inconveniente, cuándo cargo el formulario de contacto en el idioma "español" funciona genial, el problema me surge cuándo cambio a cualquier otro idioma por primera vez, por ejemplo cambio al idioma "alemán" y no introduzco ningún dato en los campos de texto y presiono el botón enviar, en vez de salirme el texto <"Bitte füllen Sie alle Felder aus. Klicken Sie hier um das Kontakt-Formular gehen. Danke.">, me sale el texto <"Ihre Nachricht wurde gesendet. Wir werden Sie in Kürze kontaktieren. Danke. Klicken Sie hier um ein anderes zu senden.">, dándome la enhorabuena como si hubiese introducido los datos, si vuelvo a presionar el botón "enviar" por segunda vez ya funcionan correctamente los mensajes, sólo ocurre al cargar por primera vez un idioma que no sea el español,
¿Cuál es el cambio que debería realizar en el código?

Código ActionScript :

function effacer() {
   sujet_txt.text = "TELÉFONO";
   mail_txt.text = "E-CORREO";
   nomprenom_txt.text = "NOMBRE";
   message_txt.text = "MENSAJE";
}
function effacer_al() {
   sujet_txt.text = "TELEFON";
   mail_txt.text = "E-POST";
   nomprenom_txt.text = "NOMEN";
   message_txt.text = "MELDUNG";
}

_parent.envoi_btn.onPress = function() {
   pressBtnForm.start();
   var envoi = new LoadVars();
   if ((sujet_txt.text == "TELÉFONO") or (mail_txt.text == "E-CORREO") or (nomprenom_txt.text == "NOMBRE") or (message_txt.text == "MENSAJE")) {
      error("Es obligatorio rellenar todos los campos. Pulsa aquí para seguir con el formulario de contacto. Gracias.");
   } else if ((sujet_txt.text == "TELEFON") or (mail_txt.text == "E-POST") or (nomprenom_txt.text == "NOMEN") or (message_txt.text == "MELDUNG")) {
      error("Bitte füllen Sie alle Felder aus. Klicken Sie hier um das Kontakt-Formular gehen. Danke.");
   } else {
      if (_root.mvMenu.mbEspañol.enabled.false = _root.idioma2 == "es"(sujet_txt.text)) {
         effacer();
         error("Su mensaje ha sido enviado con éxito. Nos pondremos en contacto con usted lo antes posible. Gracias. Pulsa aquí para mandar otro mensaje.");
         }if ((_root.mvMenu.mbAleman.enabled.false = _root.idioma2 == "al") and (sujet_txt.text)){
            effacer_al();
            error("Ihre Nachricht wurde gesendet. Wir werden Sie in Kürze kontaktieren. Danke. Klicken Sie hier um ein anderes zu senden.");
                  }
      envoi.sujet = sujet_txt.text;
      envoi.nomprenom = nomprenom_txt.text;
      envoi.mail = mail_txt.text;
      envoi.msg = message_txt.text;
      envoi.sendAndLoad("mail.php", envoi, "POST");
   }
};

Por Stephane_Kelian

8 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.