Comunidad de diseño web y desarrollo en internet online

COMO PUEDO ENVIAR UN EMAIL CON DATOS DE UN DT?

Citar            
MensajeEscrito el 18 Oct 2012 02:33 pm
Tengo una gran duda, resulta que tengo un datagrid que tiene una lista de usuarios y esa lista de usuarios las quiero enviar por email, o sea... que el campo de mensaje sea el contenido de todos los usuarios que contiene el datagrid.
Esto uso para enviar el email:

Código ActionScript :

//el php encargado de enviar los datos
const FILE:String  = "formmail.php";
//aca puden indicar el dominio de su sitio si quieren probarlo desde el player de flash
var dominio:String = "";
//como voy a recibir los datos que me devuelva el php > como variables
var dataFormat:String = URLLoaderDataFormat.VARIABLES;
//patron o expresion regular para verificar un email
var patronEmail:RegExp = /(^[0-9a-zA-Z]+(?:[._][0-9a-zA-Z]+)*)@([0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,3})$/;
//nuevo objeto para las variables
var Variables:URLVariables = new URLVariables();
//destinatario o casilla de destino, puede ser gmail, dominio propio y HOTMAIL!!!!
Variables.recipient = "[email protected]";
//Titulo del mensaje
Variables.subject = "Formulario desde la web";
//necesario para manejo de variables
var urlRequ:URLRequest = new URLRequest(dominio+FILE);
urlRequ.method = URLRequestMethod.POST;
urlRequ.data = Variables;
//objeto que trae se encarga de enviar y recibir los datos al php
var urlLoad:URLLoader = new URLLoader();
//aqui formateo los resultados recibidos del php en modo variables
urlLoad.dataFormat = dataFormat;
//accion del boton enviar
enviar_btn.addEventListener(MouseEvent.MOUSE_DOWN,enviarForm);
//funcion encargada de enviar los datos al php
function enviarForm(obj:Event) {
   if (patronEmail.test(email_txt.text)==true && nombre_txt.text !="" ) {
      resultado_txt.text ="";
      Variables.Cosulta = consulta_txt.text;
      Variables.email = email_txt.text;
      Variables.Nombre = nombre_txt.text;
      urlLoad.load(urlRequ);
   } else {
      resultado_txt.text="Complete los campos!";
   }
}
//escuchadores de que paso con los datos del lado del servidor
urlLoad.addEventListener(Event.COMPLETE, envioCompleto);
urlLoad.addEventListener(IOErrorEvent.IO_ERROR, errorEnvio);
//si el envio fue correcto
function envioCompleto(obj:Event) {
   //si el php me dio el ok de que fue enviado
   if (urlLoad.data.resultado=="ok") {
      resultado_txt.text="Mensaje enviado";
      consulta_txt.text="";
      email_txt.text ="";
      nombre_txt.text="";
   } else {
      resultado_txt.text="Error al enviar";
   }
}
//si hay problemas con el php
function errorEnvio(obj:Event) {
   resultado_txt.text="Error en el servidor!";
}
//evento para el campo de texto cuando dejan de hacer foco
email_txt.addEventListener(FocusEvent.FOCUS_OUT,verificar);
//verifico si el email es correcto!
function verificar(obj:Event) {
   if (patronEmail.test(email_txt.text)==false) {
      email_txt.text ="*Email incorrecto";
      stage.focus = email_txt;
      var letras:int = email_txt.selectionEndIndex;
      email_txt.setSelection(0,17);
   }
}


El DataGrid tiene esto:

Código ActionScript :

import fl.data.DataProvider;
import fl.controls.DataGrid;
import fl.events.ListEvent;

// DUMMY DATA
var dp:DataProvider = new DataProvider();
for(var i:uint=0; i<10; i++) {
    dp.addItem( {id:i, title:"Usuario"+i, pass:"Pass"+i } );            
}

// CREATE DATAGRID
var dg:DataGrid = new DataGrid();
dg.dataProvider = dp;
dg.setSize(300,200);
addChild(dg);

// EVENT LISTENER
dg.addEventListener(ListEvent.ITEM_CLICK, gridItemSelected);

// EVENT HANDLER
function gridItemSelected(e:ListEvent):void {
   trace( "Row Index: " + e.rowIndex);
   trace( "Column Index: " + e.columnIndex);
   var colName:String  =  e.target.columns[e.columnIndex].dataField;
   trace( "Column Field Name: " +colName);
   trace( "Cell data: " +e.item[colName]);
}


La idea es que en la variable email en lugar de que me tome el campo dinamico consulta.text me tome todo el contenido del dg, espero que puedan ayudarme, gracias.

Por julito12

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Oct 2012 08:07 pm
Tienes que recorrer el dataProvider para capturar la info, algo así

Código ActionScript :

var nombres:String = "";
var cant:int = dp.length
for(var i:uint=0; i<cant; i++) {
    var item:Object = dp.getItemAt(i);
   nombres +=  item.titulo+"\n";   
}


Luego usa la variable nombres en el contenido de tu email
Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Nov 2012 03:17 pm
Genio, gracias.

Por chunilp

71 de clabLevel



 

chrome

 

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