Comunidad de diseño web y desarrollo en internet online

dataGrid en flash con AS2 - PHP y MySQL

Citar            
MensajeEscrito el 27 Dic 2012 07:46 pm
Buenas tardes.
Estoy tratando de mostrar los datos de una consulta de MySql y PHP en un datagrid de flash.
He podido mostrar los datos en un texto casi de manera similar, pero no puedo lograr hacerlo en el datagrid. Por favor necesito ayuda en esto.

codigo PHP:

<?php
$db_host="localhost";
$db_nombre="irotruji_cita";
$db_user="root";
$db_pass="";

$link = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_nombre, $link);

$datoshc2 = "SELECT * from histomsq";
$resutodos = mysql_query($datoshc2);

$muestradata="";
while($f=mysql_fetch_array($resutodos)){
$muestradata=$muestradata."".$f['ihc']." ".$f['iap']." ".$f['iam'].'
';
}
?>



codigo AS2:

pruebadata = new LoadVars;
pruebadata.load("cargadatos.php");
pruebadata.onLoad=function(){
mytxt.text=this.muestradata;
texto.text=this.muestradata;
lista.dataProvider=this.muestradata;
datagrid1.dataProvider=this.muestradata;

}



Gracias por la ayuda que me puedan brindar.

Por SLyLuRK

3 de clabLevel



Genero:Masculino  

Perú

chrome
Citar            
MensajeEscrito el 28 Dic 2012 01:50 am
Hola SLyLuRK,

Yo lo hago creando un archivo xml, asi puedes ordenar más facilmente la data que quieres poner en cada columna.

Si te interesa este método avisame y te lo explico.

Saludos

Por chochito_alegre

51 de clabLevel



Genero:Masculino  

Lima - Perú

firefox
Citar            
MensajeEscrito el 28 Dic 2012 12:50 pm
Hola chochito_alegre.

Si me interesaria, pero tendria que generar primero un XML con los datos?
porque la idea es que lo tome desde el MySQL ya que se actualizan los datos constantemente. Pero si te agradeceria que me ayudes a realizarlo con tu metodo.

gracias y saludos.

Por SLyLuRK

3 de clabLevel



Genero:Masculino  

Perú

chrome
Citar            
MensajeEscrito el 28 Dic 2012 02:22 pm
Okas.. te explico mi metodo... es un poco largo pero da buenos resultados..

Digamos que tengo una tabla en MySQL llamada USUARIO, cuyos campos son: cod_usuario, dsc_nombre, dsc_paterno, y yo quiero recuperar todos estos datos, entonces creamos primero el PHP de la siguiente manera (colocar como nombre de archivo (ArchivoConsulta.php):

Código PHP :

<?php
$enlace =  mysql_connect("localhost", "xxx", "yyy");
$db = mysql_select_db("zzz", $enlace);
$query = "select * from USUARIO";
$resultID = mysql_query($query, $enlace);
$xml_output .= "<Resultados>\n";
for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){     
$row = mysql_fetch_assoc($resultID);     
$xml_output .= "\t<entrada>\n";
$xml_output .= "\t\t<codigo>" . $row['cod_usuario'] . "</codigo>\n";
$xml_output .= "\t\t<nombre>" . $row['dsc_nombre'] . "</nombre>\n";     
$xml_output .= "\t\t<apellido>" . $row['dsc_paterno'] . "</apellido>\n";
$xml_output .= "\t</entrada>\n"; 
}
$xml_output .= "</Resultados>";
$fh = fopen("ArchivoDatos.xml","w"); 
fwrite($fh,$xml_output);
$fin = fclose($fh);
$respuesta = "&mensaje=$fin";
echo ($respuesta);
?>


De esta manera hacemos una consulta y con los datos que hemos obtenido generamos un xml (que es lo que necesitas).

Luego, en flash colocas el siguiente codigo:

Código ActionScript :

var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
import mx.controls.gridclasses.DataGridColumn;
archivo_xml = new XML();
archivo_xml.ignoreWhite = true;
detector = new Object();

envio_lv.sendAndLoad("ArchivoConsulta.php",recibir_lv,"POST");

recibir_lv.onLoad = function(exito)
{
   if (exito)
   {
      archivo_xml.load("ArchivoDatos.xml");
   }
};


archivo_xml.onLoad = function(success)
{
   if (success)
   {
      largo = archivo_xml.firstChild.childNodes.length;
      indice = new Array(largo);
      codigo = new Array(largo);
      nombre = new Array(largo);
      apellido = new Array(largo);
      
      for (i = 0; i < largo; i++)
      {
         indice[i] = i + 1;
         codigo[i] = archivo_xml.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue;
         nombre[i] = archivo_xml.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue;
         apellido[i] = archivo_xml.firstChild.childNodes[i].childNodes[2].firstChild.nodeValue;
      }
      llenarDataGrid();
   }
   else
   {
      resultado.text = "NO CARGO XML";
   }
};


function llenarDataGrid()
{
   misCeldas.editable = false;
   misCeldas._x = 25;
   misCeldas._y = 40;
   misCeldas.headerHeight = 20;
   misCeldas.resizableColumns = true;
   misCeldas.selectable = false;
   misCeldas.showHeaders = true;
   misCeldas.sortableColumns = true;

   losDatos = new Array();
   misCeldas.dataProvider = losDatos;

   for (i = 0; i < nombre.length; i++)
   {
      losDatos.addItem({INDICE:indice[i], codigo:codigo[i], nombre:nombre[i], apellido:apellido[i]});
   }
   misCeldas.getColumnAt(0).width = 50;
   misCeldas.getColumnAt(1).width = 110;
   misCeldas.getColumnAt(2).width = 110;
   misCeldas.getColumnAt(3).width = 100;
}


El nombre de instacia de tu DataGrid debe ser misCeldas.

Listo! con eso conseguirias lo que necesitas.

Avisame si todo salio bien!!

Saludos

Por chochito_alegre

51 de clabLevel



Genero:Masculino  

Lima - Perú

firefox
Citar            
MensajeEscrito el 28 Dic 2012 05:37 pm
Gracias chochito_alegre.

Muchas Gracias por la ayuda prestada y por el método. Va de 10 amigo.

Funcionó de maravilla todo el código. :D (y)

Saludos cordiales.

Por SLyLuRK

3 de clabLevel



Genero:Masculino  

Perú

chrome

 

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