PhilFlash

Real Estate Sample Application - Part 1

Dans le DevNet, vous avez pu voir l'application "Real Estate".

Cette application est développé en ColdFusion en utilisant les Flash Forms. Deux articles sont consacrés à cet exemple :

The Real Estate Sample Application - Part 1: Building the Search Functionality with Flash Forms
http://www.macromedia.com/devnet/coldfusion/articles/flashforms.html

The Real Estate Sample Application - Part 2: Managing Property Listings Through Flash Forms
http://www.macromedia.com/devnet/coldfusion/articles/flashforms_pt2.html

Les auteurs de cet article ont un blog ASFUSION. Dans ce blog, vous pouvez voir la démonstration en direct :
http://www.asfusion.com/blog/entry/coldfusion-flash-forms-macromedia-2

Je n'ai pas pu résister.
Voici la même démonstration en Flash avec une base MySQL en utilisant PHP 5.

Voici donc la partie 1 qui présente la fonction de recherche (l'équivalent du premier article dans le DevNet)....

Lancer l'application - Live Demo

Obtenir les sources realestate_part1.zip (1 067 Ko) - Updated 10 mai 2006

Composants utilisés et technologie

XMLConnector, DataSet, DataGrid, Flash Form Application, PHP5, MySQL

Quelques explications

Pour les panneaux, on utilise les composants IwTitle et IwEncart disponibles sur ce site. Ils ont été remis à jour.

La fonction de recherche

Un clique sur le bouton Search permet de lancer une recherche d'information : éxécution d'une requête SQL sur le serveur, renvoi des données et affichage dans le DataGrid.

Toutes les informations utilisent le format XML.

Un clique sur le bouton Search déclencle la création d'un XML comportant toutes les options de recherche sous forme d'attributs. Ceci est effectué par la méthode doSearchAction dans le fichier form/SearchForm.as

Exemple :

<?xml version="1.0" encoding="UTF-8" ?>
<params hasWalkInClosets="0" hasFireplace="0" hasLaundry="1" hasPool="1" status="recent"
  footage="500" bathrooms="2.5" bedrooms="2" mls="" priceMax="650000" priceMin="550000" />

Ce fichier XML est envoyé au serveur PHP par le XMLConnector listing_con.

listing_con.params = listingXML;
listing_con.trigger();

L'URL du XMLConnector a été initialisé dans la méthode onLoad du fichier form/ApplicationForm.as

(rootForm).search.listing_con.URL = siteURL+"selectlisting.php";

Le fichier selectlisting.php sur le serveur analyse le fichier XML en entrée et crée une requête SQL à partir des informations contenues dans le XML. En fait, ce sont des conditions qui sont ajoutées à la requête SQL selon les paramètres.

Il existe un cas spécial pour le paramètre mls. Si la valeur est "all" ou "*", la requête SQL renvoie tous les enregistrements de la base. Si un paramètre est passé, toutes les autres conditions sont annulées et on renvoie l'annonce portant le numéro de mls indiqué.

La requête SQL est éxécutée et on renvoie les réponses dans un XML.

Flash execute la méthode doResultListingAction sur ceécption du XML. Cette méthode a été associé au XMLConnector :

listing_con.addEventListener("result", Delegate.create(this, doResultListingAction));

On utilise la méthode rapide pour lire, pour parser le XML et l'associer à un DataSet qui alimente le DataGrid (voir l'article : DataGrid Performance). Avec cette méthode, on peut lire plus de 2000 enregistrements en moins de 0.5 secondes.

La sélection d'une ligne dans le DataGrid permet d'initialiser les différents champs : méthode doListingChangeAction dans le fichier form/MainForm.as qui a été associée par :

listing_dg.addEventListener("change", Delegate.create(this, doListingChangeAction));

La valeur de chaque champ est initialisé par la valeur contenue dans le DataSet en ActionScript (on n'utilise pas de DataBinding ici).

public function doListingChangeAction(eventObj:Object):Void {
  var target = eventObj.target;
  var selectedItem = target.selectedItem;
  ...
  address_ti.text = selectedItem.address;
  city_ti.text = selectedItem.city;
  zip_ti.text = selectedItem.zipcode;

Vous pouvez consultez la partie 2 pour la mise à jour de la base de données.

 

xhtml   css   cc   508   aaa
Me connaître  |  Me contacter