En este tutorial, el objetivo es desarrollar una guía de las empresas, que contendrá el texto siguiente:
*Categorías
* Listado de Empresas
+ Nombre de la empresa
+ Dirección
+ Teléfono
+ Website
+ foto
+ Descripción
ya he creado la base de datos siguiendo los pasos del tutorial de adobe y subí a mi host...el resultado es algo así:
http://www.subba.cl/ignis/phpflashmysql/directory.html
*La primera sección de la izquierda es un menú emergente (comboBox) a partir de la cual un usuario puede seleccionar una categoría de los negocios, por ejemplo, computadoras, automóviles, o la ropa.
*Una vez que un usuario selecciona una categoría, una lista de nombres de empresas comprendidas en esa categoría aparece en la sección central.
*Cuando un usuario selecciona un nombre comercial, los detalles de las empresas aparecen en la sección derecha, por ejemplo, nombre comercial, dirección, teléfono, o e-mail.
base de datos en mysql
//////////////////////
//estructura de la tabla categoría
CREATE TABLE category (
cID tinyint(4) NOT NULL auto_increment,
Category varchar(255) NOT NULL default '',
PRIMARY KEY (cID)
) TYPE=MyISAM;
INSERT INTO category VALUES (1, 'Computers');
INSERT INTO category VALUES (2, 'Automobiles');
INSERT INTO category VALUES (3, 'Restaurant');
INSERT INTO category VALUES (4, 'Clothing');
//estructura de la tabla directorio
CREATE TABLE directory (
pID int(4) NOT NULL auto_increment,
Category varchar(255) NOT NULL default '',
Business varchar(255) NOT NULL default '',
Address varchar(255) NOT NULL default '',
Telephone varchar(255) NOT NULL default '',
Website varchar(255) NOT NULL default '',
Email varchar(255) NOT NULL default '',
Details longtext NOT NULL,
Picture varchar(255) NOT NULL default '',
PRIMARY KEY (pID)
) TYPE=MyISAM;
INSERT INTO directory VALUES (1, 'Computers', 'Abson', 'ABSON (UK) Ltd, Campus 100, UK', '01952284303', 'http://www.abson.com', '[email protected]', 'Manufacturers of quality computer products as well as scanners, digital cameras and LCD projectors. Our Site offers FAQ and technical support. \r\nContact us for your immediate needs or visit the site for more details.', 'abson.jpg');
INSERT INTO directory VALUES (2, 'Automobiles', 'CFS Cars', '12, Sigma Towers', '9182712345', 'http://www.cfs.com', '[email protected]', 'We sell all kinds of automobile spare parts.', cfs.jpg');
...etc
////////////////////////////////////////////////////////////
//estos son los archivos XML y PHP necesarios para establecer el esquema del componente (nombre de instancia category_xml) XMLConnector para el comboBox//
∑ archivo XML categorías: (category.xml)
<menu>
<menu-title label="menu">
<menu-item label="Select Category" />
<menu-item label="Automobiles" />
<menu-item label="Computers" />
<menu-item label="clothing" />
<menu-item label="Restaurant" />
<menu-item label="something"/>
</menu-title>
</menu>
∑ archivo PHP categorias (category.php)
∑ El segundo archivo PHP XML genera carga dinámica de las categorías
<?php
//this line includes our config file
include_once("config.php");
//this line selects the cID and Category from the table category
$result = mysql_query("SELECT cID, Category FROM category");
// And now we need to output an XML document
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<menu>';
echo '<menu-title label="menu">';
echo '<menu-item label="Select Category ..." />';
//this is a loop that will fetch all entries
while($row=mysql_fetch_array($result)){
$line = '<menu-item label="'.$row[Category].'"/>';
echo $line;
}
echo '</menu-title>';
echo '</menu>';
?>
----------------------
ACTIONSCRIPT en primer fotorama del movie clip que contiene el comboBox (category_mc)
category_xml.trigger();
comboFunction = new Object();
comboFunction.change = function (evt){
_root.business_mc.business_xml.direction = "receive";
_root.business_mc.business_xml.URL = "business.php?category="+evt.target.selectedItem.label;
_root.business_mc.business_xml.trigger();
_root.details_mc.company_txt.text = "";
_root.details_mc.address_txt.text = "";
_root.details_mc.tel_txt.text = "";
_root.details_mc.email_txt.text = "";
_root.details_mc.website_txt.text = "";
_root.details_mc.picture_img.load("");
_root.details_mc.details_txt.text = "";
}
category_cb.addEventListener("change", comboFunction);
ahora pasamos al datagrid...AQUI ESTÁ MI DUDA!
////////////////////////////////////////////////////////////
//estos son los archivos XML y PHP necesarios para establecer el esquema del componente (nombre de instancia business_xml) XMLConnector para el dataGrid //
∑ archivo XML listado empresas: (business.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<datapacket>
<row pID="1" Business="Business1" Address="Address 1" Telephone="12345" Website="http://www.b1.com" Email="[email protected]" Details="some text for Details." Picture="image1.jpg" />
<row pID="2" Business="Business2" Address="Address 2" Telephone="67879" Website="http://www.b2.com" Email="[email protected]" Details="some more text for Details." Picture="image2.jpg" />
<row pID="3" Business="Business3" Address="Address 3" Telephone="010203" Website="http://www.b2.com" Email="[email protected]" Details="and some more text for Details." Picture="image3.jpg" />
</datapacket>
∑ archivo PHP categorias (business.php)
El segundo archivo PHP XML genera carga dinámica de lista empresas
<?php
//this line includes our config file
include_once("config.php");
//this will be used to capture the variable we will pass from flash to tell which category we are looking for
$key = $HTTP_GET_VARS[category];
$result = mysql_query("SELECT pID, Category, Business, Address, Telephone, Website, Email, Details, Picture FROM directory WHERE Category LIKE '%".$key."%'");
// And now we need to output an XML document
// We use the names of columns as <row> properties.
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<datapacket>';
while($row=mysql_fetch_array($result)){
$line = '<row pID="'.$row[pID].'" Business="'.$row[Business].'" Address="'.$row[Address].'" Telephone="'.$row[Telephone].'" Website="'.$row[Website].'" Email="'.$row[Email].'" Details="'.$row[Details].'" Picture="'.$row[Picture].'"/>';
echo $line;
}
echo '</datapacket>';
?>
ACTIONSCRIPT en primer fotorama del movie clip que contiene el dataGrid (business_mc)
business_dg.vScrollPolicy = "auto";
DGlistener = new Object();
//function when pressing on a cell in datagrids
DGlistener.cellPress = function(evt){
if(evt.target==business_dg){
var nr:Number = evt.itemIndex
var st:String = evt.target.selectedIndex
//This trace command is only for offline testing
//it is not ment for online testing
trace ("You selected "+business_ds.items[st].griditem+" which is number "+business_ds.items[nr].pkGrid);
//code below displays the selection in Dynamic text field
//This has been put to help you figure out how to detect what is selected.
trace_click.htmlText = "You selected <b>"+data_grid.items[st].griditem+"</b> which is number <b>"+data_grid.items[nr].pkGrid+"</b>";
_root.details_mc.company_txt.text = business_ds.items[st].Business;
_root.details_mc.address_txt.text = business_ds.items[st].Address;
_root.details_mc.tel_txt.text = business_ds.items[st].Telephone;
_root.details_mc.website_txt.text = "<a href=\""+business_ds.items[st].Website+"\" target=\"_blank\">"+business_ds.items[st].Website+"</a>";
_root.details_mc.email_txt.text = "<a href=\"mailto:"+business_ds.items[st].Email+"\">"+business_ds.items[st].Email+"</a>";
_root.details_mc.picture_img.load("images/"+business_ds.items[st].Picture);
_root.details_mc.details_txt.text = business_ds.items[st].Details;
this.updateData(0)
}
}
//Setup which event to listen
business_dg.addEventListener("cellPress", DGlistener); //Press on datagrid
//This line turns off the coloum sorting
business_dg.sortableColumns = true;
stop();
consultas:
1- que parte del codigo debo modificar para cargar los datos del dataGrid en otro comboBox.
2- que debo agregar al codigo de dataGrid para que muestre todas las empresas al momento de cargar la página y al seleccionar alguna categoria ordene el listado segun la categoria seleccionada.
http://www.subba.cl/ignis/phpflashmysql.zip
aqui puedes decargar todos los archivos
http://www.adobe.com/devnet/flash/articles/flash_xmlphp.html
link de tutorial.
a ver si alguien me puede ayudar y muchas gracias, Arriba Cristalab!