Comunidad de diseño web y desarrollo en internet online

Ayuda Componente DateChooser enviar a PHP

Citar            
MensajeEscrito el 29 Jun 2011 05:22 pm
Buenas Tardes,
Escribo porque tengo un Problema con el Componente DateChooser en Flash CS5.
Nunca antes habia usado este componente hasta ahora; el problema es el siguiente:
Al enviar los datos al correo electronico por medio de un archivo PHP me llegan en formato Ingles: Fecha de la Cita: Wed Jun 29 00:00:00 GMT-0430 2011 y necesito que me llegue en Español. Tengo especificado en el AS los dias y meses en Castellano, como lo indican en un tutorial que hay aqui mismo, lo que no se es como tomar exactamente esas variables indicadas anteriormente para que las envie al php.
Dejo el codigo entero para que alguien porfavor me ayude. :shock:
Muchas Gracias
(tambien me funcionaria el componente DateField) Si alguien lo ha usado y puede indicarme, estare completamente agradecido.


Código ActionScript :

// Importamos la librería del componente Alert
import mx.controls.Alert;
// Sólo por estética, cambiamos el color del tema (cambiamos el verde que aparece por default)
_global.style.setStyle("themeColor", 0xA7DA6D);
/* Esta línea es importante para que todo 
lo que el usuario escriba o seleccione tenga acentos, 
se muestren de forma correcta y no con caracteres raros (Ej. Ã) */
System.useCodepage = true;
/* Creamos un arreglo para guardar 
los temas seleccionados por el usuario 
(es decir, las opciones de los checkboxes que el usuario seleccionó) */
//var mestxt:Array = new Array(); //se llamaba: temas
var mantenimiento:Array = new Array(); //se llamaba: temas

//Datos del DataChooser

//Nombres de los dias y los meses que mostrará el calendario

mi_calendario.dayNames = ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"];

mi_calendario.monthNames = ["Enero", "Febrero", "Marzo", "Abril",

                     "Mayo", "Junio", "Julio", "Agosto",

                     "Septiembre", "Octubre", "Noviembre", "Diciembre"]

//Propiedades

mi_calendario.disabledDays = [0, 6];

mi_calendario.showToday = false;

mi_calendario.firstDayOfWeek = 1;

//Listener para mostrar la fecha

alCambiar = new Object();

alCambiar.change = function(evento) {

   //Cogemos la fecha y la partimos en tres variables para poder manejarla

   fecha_date = new Date(evento.target.selectedDate);

   dia = fecha_date.getDate();

   mes = fecha_date.getMonth()+1;

   ano = fecha_date.getFullYear();

   trace("Has seleccionado el día "+dia+"/"+mes+"/"+ano);

};


alPasarMes = new Object();

alPasarMes.scroll = function(evento) {

   trace("Has cambiado al mes de "+evento.target.monthNames[evento.target.displayedMonth]);

};

//Creamos los listeners

mi_calendario.addEventListener("change", alCambiar);

mi_calendario.addEventListener("scroll", alPasarMes);

//Listener para mostrar el mes

alPasarMes = new Object();

alPasarMes.scroll = function(evento) {

   mestxt = evento.target.monthNames[evento.target.displayedMonth];

   if (mestxt == "Junio") {

      //Sant Joan

      evento.target.disabledRanges = [{rangeStart:new Date(2004, 5, 24), 
               rangeEnd:new Date(2004, 5, 24)}];

   } else if (mestxt == "Agosto") {

      //Vacaciones de Agosto 8D

      evento.target.disabledRanges = [{rangeStart:new Date(2004, 7, 1), 
               rangeEnd:new Date(2004, 7, 15)}];

   }

   trace("Has cambiado al mes de "+mestxt);

};

/* Creamos dos objetos de la clase LoadVars, 
uno para enviar los datos introducidos por el usuario 
y el otro para recibir la respuesta enviada por el archivo de PHP */
var enviar_lv:LoadVars = new LoadVars();
var resultado_lv:LoadVars = new LoadVars();
/* Hacemos la llamada a la función initForm, 
la cual a su vez llamará a otras funciones para, por ejemplo, 
llenar el combobox de los estados, 
cambiarle el estilo a los botones de radio, etc. 
El código de esta función está en el siguiente 
bloque de código ActionScript. */
initForm();

/*El código anterior muestra la declaración variables e importación 
de clases necesarias (en este caso sólo una clase). 
Ahora nos enfocaremos en las funciones que escribiremos en nuestro código.*/

/* Esta función llama a los métodos encargados 
de cambiar los estilos de los botones de radio, checkboxes, etc. */
function initForm() {
   escondeMensajes();
   setEstilosCheckBoxes();
   llenaComboMotivo();
   llenaComboSupo();
   }
/* Escondemos (no mostramos) los mensajes que 
le indicarán al usuario qué campos le faltó introducir. 
Es decir, los campos obligarios marcados por (*). */
function escondeMensajes() {
   for(var i = 1; i < 12; i++) {
      this["msj" + i]._visible = false;
   }
}
/* Le cambiamos el formato a los checkboxes. 
Si no entiendes esta parte, por favor revisa el post sobre 
el componente CheckBox en http://www.codigometropoli.com*/
function setEstilosCheckBoxes() {
   for(var i = 0; i < 5; i++) {
      this["check" + i].setStyle("color", 0x86B834);
      this["check" + i].setStyle("fontWeight", "bold");
      this["check" + i].setStyle("marginLeft", 2);
   }
}

//Las siguientes funciones son vitales para el tratamiento del formulario:

/* Asignamos las acciones al botón de Enviar. En este caso, 
el botón de Enviar hará el llamado a la función validaForma 
para verificar que el usuario haya llenado los campos obligatorios. 
Como lo dije anteriormente, para este ejemplo haremos que el usuario 
tenga que llenar todos los campos. */
enviar_btn.onRelease = function() {
    validaForma();
}
/* Esta función se encarga de validar que todos los campos
obligatorio,verifica que fueron llenados. Primero hacemos llamados a la función 
escondeMensajes para no mostrar los campos dinámicos (msj1, msj2, etc.) 
en caso de que sea la segunda vez que se llama a la función validaForma. */
function validaForma() {
    escondeMensajes();
   //Aqui comenzamos con los datos del formulario
   //Nombre de promocion
      if(nombre_txt.text == "") { // Vemos si el campo de texto del nombre está vacío
        msj1._visible = true; // Como el campo del nombre no fue llenado, mostramos el primer mensaje
        nombre_txt.setFocus(); // Colocamos el foco o cursor en el campo del nombre
    } 

   
   else if(cedula_txt.text == "") { // Vemos si el campo de texto del nombre está vacío
        msj2._visible = true; // Como el campo del nombre no fue llenado, mostramos el primer mensaje
        cedula_txt.setFocus(); // Colocamos el foco o cursor en el campo del nombre
    } 
   
   else if(email_txt.text == "" || !esCorreo(email_txt.text)) { /* Vemos si el campo del correo está vacío y sí el formato del correo es correcto */
        msj3._visible = true; /* Mostramos el segundo mensaje ya que el campo del correo está vacío o bien el formato es incorrecto */
        email_txt.setFocus(); // Ponemos el cursos en el campo del correo
    }
   else if(telefono_txt.text == "") { // Vemos si el campo de texto del nombre está vacío
        msj4._visible = true; // Como el campo del nombre no fue llenado, mostramos el primer mensaje
        telefono_txt.setFocus(); // Colocamos el foco o cursor en el campo del nombre
    } 
   
      
   else if(modelovehiculo_txt.text == "") { // Vemos si el campo de texto del nombre está vacío
        msj5._visible = true; // Como el campo del nombre no fue llenado, mostramos el primer mensaje
        modelovehiculo_txt.setFocus(); // Colocamos el foco o cursor en el campo del nombre
    } 
   else if(numerodeplaca_txt.text == "") { // Vemos si el campo de texto del nombre está vacío
        msj6._visible = true; // Como el campo del nombre no fue llenado, mostramos el primer mensaje
        numerodeplaca_txt.setFocus(); // Colocamos el foco o cursor en el campo del nombre
    } 
   
   else {
        mantenimiento = buscaChecksSeleccionados(); /* Guardamos en el arreglo temas los valores de los checkboxes que el usuario seleccionó. La función buscaChecksSeleccionados nos regresa un arreglo con los valores de los checkboxes seleccionados */
        if(mantenimiento.length == 0) { /* Si la longitud del arreglo temas es igual a 0, entonces el usuario no seleccionó ninguna opción; por lo tanto, mostramos el quinto mensaje y ponemos el cursor en el primer checkbox */
            msj7._visible = true;
            check1.setFocus();
        }
      
   else if(otrosrequerimientos_txt.text == "") { // Vemos si el campo de texto del nombre está vacío
        msj8._visible = true; // Como el campo del nombre no fue llenado, mostramos el primer mensaje
        otrosrequerimientos_txt.setFocus(); // Colocamos el foco o cursor en el campo del nombre
    } 
   else if(mi_calendario.selectedDate == 0) { /* Si se cumple este condicional quiere decir que el usuario no seleccionó ninguna opción del combobox de los estados. Si el índice seleccionado (selectedIndex) es igual a 0, entonces la opción seleccionada es la que dice "-- Seleccionar --", por lo tanto no nos interesa que el usuario use esa opción */
        msj9._visible = true;
        mi_calendario.setFocus();
    } 
   
   else if(horacita_txt.text == "") { // Vemos si el campo de texto del nombre está vacío
        msj10._visible = true; // Como el campo del nombre no fue llenado, mostramos el primer mensaje
        horacita_txt.setFocus(); // Colocamos el foco o cursor en el campo del nombre
    } 
                  else { /* Si ninguno de los condicionales anteriores se cumplió, quiere decir que el usuario llenó todos los campos necesarios. Mandamos a llamar la función enviarCorreo */
            enviarCorreo();
        }
    }
 }

/* Esta función regresa un arreglo con los valores 
de los CheckBox(es) seleccionados. 
Recorremos todos los componentes checkbox por medio de
un ciclo for y vemos el valor de la propiedad "selected" 
de cada uno de ellos. Si no entiendes esta parte, 
por favor revisa el post sobre el componente CheckBox  */

function buscaChecksSeleccionados():Array {
    var temp = new Array();
    for(var i = 0; i <5; i++) {
        if(this["check" + i].selected) {
            temp.push(this["check" + i].label);
        }
    }
    return temp;
}

/* Esta función nos permite revisar si el formato del correo 
electrónico es correcto. Es decir, que contenga @, el punto xxx, etc. */
function esCorreo(email:String):Boolean
{
    var res:Boolean = false;
    if(email.indexOf("@")>0 && email.indexOf("@") == email.lastIndexOf("@"))
    {
        if(email.lastIndexOf(".")> email.indexOf("@") && email.lastIndexOf(".")<email.length-1)
        {
            res = true;
        }
    }
    return res;
}
/* Explicación: Primero desactivamos el botón de enviar para que 
el usuario no haga click más de una vez. Al objeto enviar_lv de la clase 
LoadVars le copiamos el valor de cada uno de los campos del formulario 
y los enviamos al archivo de PHP (enviar_formulario_de_contacto.php). 
A la función sendAndLoad del objeto enviar_lv, le pasamos como parámetro 
el path del archivo que recibirá los datos, el objeto de la clase LoadVars 
que recibirá la respuesta y el método en cómo se enviarán los datos 
(POST o GET). Este último parámetro es opcional y por default el valor 
es de POST.  NOTA: Si quieres cargar el resultado del archivo pasado 
como primer parámetro, deberás usar la función send. 
En los archivos de este tutorial que encuentras más abajo en un archivo zip,
usamos la función sendAndLoad ya que nos interesa mostrar un mensaje de alerta 
(con el resultado) dentro del mismo Flash y no dentro del PHP. 
Sin embargo, el ejemplo que se encuentra más abajo utiliza la función send 
para mostrar dentro del mismo PHP el mensaje del correo electrónico en 
formato HTML y Texto Plano. */

function enviarCorreo() {
   enviar_btn.enabled = false;
   enviar_lv.nombre = nombre_txt.text;
   enviar_lv.cedula = cedula_txt.text;
   enviar_lv.email = email_txt.text;
   enviar_lv.telefono = telefono_txt.text;
   enviar_lv.modelovehiculo = modelovehiculo_txt.text;
   enviar_lv.numerodeplaca = numerodeplaca_txt.text;
   enviar_lv.mantenimiento = mantenimiento;
   enviar_lv.otrosrequerimientos = otrosrequerimientos_txt.text;
   enviar_lv.mestxt = mi_calendario.selectedDate;
   enviar_lv.horacita = horacita_txt.text;
   enviar_lv.sendAndLoad("enviar_formulario_de_contacto.php", resultado_lv, "POST");
}


/* El evento onLoad del objeto resultado_lv es invocado cuando 
la llamada a los métodos load() o sendAndLoad() ha sido terminada. 
Asignamos el resultado regresado por el PHP a la variable respuesta. 
Si la llamada fue exitosa, vemos si la respuesta es igual a 'S', 
si es así mostramos un mensaje señalando que el mensaje ha sido 
enviado y llamamos a la función reestablecerForma para borrar los 
datos ingresados por el usuario. Si la respuesta es distinto a 'S' 
o bien si la llamada no fue exitosa, mostramos un mensaje señalando 
que hubo un error en el envío. Por último, volvemos a activar el botón 
de enviar. */
resultado_lv.onLoad = function(success:Boolean)
{
    var respuesta = this.resultado;
    if(success)
    {
        if(respuesta == "S")
        {
            Alert.show("Su mensaje ha sido enviado.", "Gracias", Alert.OK, null, "alerta", Alert.OK);
            msjalert._x = 442;
            msjalert._y = 1700;
         reestablecerForma();
        }
        else
        {
            Alert.show("Hubo un error en el envío del mensaje, por favor intente más tarde.", "Error", Alert.OK, null, "alerta", Alert.OK);
         msjalert._x = 442;
            msjalert._y = 1700;
        }
    }
    else
        Alert.show("Hubo un error en el envío del mensaje, por favor intente más tarde.", "Error", Alert.OK, null, "alerta", Alert.OK);
       msjalert._x = 442;
            msjalert._y = 1700;
        enviar_btn.enabled = true;
};
/* Esta función borra los datos introducidos por el usuario. */
function reestablecerForma() {
    nombre_txt.text = "";
    correo_txt.text = "";
    desactivarCondiciones();
    desactivarEstados_Adicionales();
    pais_cb.selectedIndex = 0;
    texto_promocion_txt.text = "";
}
/* Su función es poner todos los botones de radio como no seleccionados */
function desactivarCondiciones() {
    for(var i = 1; i <5; i++) {
        this["radio" + i].selected = false;
    }
}
/* Su función es poner todos los CheckBox(es) como no seleccionados */
function desactivarEstados_Adicionales() {
    for(var i = 1; i <6; i++) {
        this["check" + i].selected = false;
    }
}

Por anibrimo84

29 de clabLevel



 

Venezuela

firefox
Citar            
MensajeEscrito el 29 Jun 2011 06:14 pm
Es un ladrillo de code y me pierdo, pero básicamente si creas un Objeto Date en base a lo que retorna el DateChooser, arma un string usando getDate, getMonth y getYear y pasa eso, no el objeto Date.toString

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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