Flex with PHP using AMFPHP for framework.
Install framework AMFPHP in your computer.
- Download amfphp-1.9.beta.20080120.zip under amfphp_1.9_beta2 from this URL http://sourceforge.net/project/showfiles.php?group_id=72483#files
- Create folder amfphp in your webserver
ex => D:\xampp\htdocs\amfphp
extract your amfphp-1.9.beta.20080120.zip in D:\xampp\htdocs\amfphp
- Try invoking gateway.php and see if it is set up properly.
http://localhost/amfphp/gateway.php
Create your file PHP, under directory ../amfphp/services/myservice/
This connection using Microsoft SQL Server with ADODB
- connection.php
<?php
include('adodb/adodb.inc.php'); # load code common to ADOdb
class connection
{
public $rrgpl;
public function connection(){}
public function getConnection()
{
$rrgpl = ADONewConnection('mssql');
$rrgpl -> Connect("SERVER_NAME","USERNAME","PASSWORD",'DB_NAME');
return $rrgpl;
}
}
?>
databrg.php
<?
include "connection.php";
class databrg
{
function databrg(){}
public function getAllData()
{
$result = array();
$conn = new connection();
$rrgpl = $conn->getConnection();
$i=0;
$databrg = $rrgpl->Execute("SELECT KDBRG,NMBRG,UNIT,GAMBAR FROM TABLE_NAME");
while(!$databrg->EOF)
{
$result[$i]["kode"]=trim($databrg->fields[0]);
$result[$i]["nama"]=trim(str_replace('&','&',$databrg->fields[1]));
$result[$i]["unit"]=trim($databrg->fields[2]);
$result[$i]["gambar"]=trim($databrg->fields[3]);
$i++;
$databrg->MoveNext();
}
return $result;
}
}
?>
After you create file PHP for getting data in database, now you create Flex file ( MXML & Action Script 3.0 ) , you can use Flex Builder for create this file:
Code :
SrvHTTP.as
import mx.controls.Alert;
import mx.managers.CursorManager;
import mx.messaging.ChannelSet;
import mx.messaging.channels.AMFChannel;
import mx.rpc.events.FaultEvent;
private var cs:ChannelSet;
private var channel:AMFChannel
private function getNewChannelSet():ChannelSet
{
cs = new ChannelSet();
channel = new AMFChannel("amfphp","http://localhost/amfphp/gateway.php");
cs.addChannel(channel);
return cs;
}
private function faultHandler(fault:FaultEvent):void
{
CursorManager.removeBusyCursor();
Alert.show("code:\n" + fault.fault.faultCode + "\n\nMessage:\n"
+ fault.fault.faultString + "\n\nDetail:\n" + fault.fault.faultDetail);
}
Code:
listbrg.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="666" height="514" alpha="0.8" title="List Data Barang" backgroundAlpha="1.0" showCloseButton="true" close="closing()" creationComplete="init()">
<mx:ArrayCollection id="array_jmlh"/>
<mx:RemoteObject id="getListDataBrg" source="srv-kunci.databrg" destination="amfphp" fault="faultHandler(event)" showBusyCursor="true">
<mx:method name="getAllData" result="resDataBrg(event)" fault="faultHandler(event)" />
</mx:RemoteObject>
<mx:Script source="SrvHTTP.as"/>
<mx:Script>
<![CDATA[
import mx.utils.ArrayUtil;
import mx.collections.IViewCursor;
import mx.controls.CheckBox;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.managers.PopUpManager;
public var kode:String='';
public var nama:String='';
public var unit:String='';
public var gambar:String='';
public var statusClose:Boolean=false;
private function init():void
{
getListDataBrg.channelSet=this.getNewChannelSet();
getListDataBrg.getAllData();
}
private function closing():void
{
statusClose=true;
PopUpManager.removePopUp(this);
}
private function resDataBrg(evt:ResultEvent):void
{
this.array_jmlh = new ArrayCollection( ArrayUtil.toArray(evt.result) );
}
private function selectListBrg():void
{
kode=dgListBrg.selectedItem.kode;
nama=dgListBrg.selectedItem.nama;
unit=dgListBrg.selectedItem.unit;
gambar=dgListBrg.selectedItem.gambar;
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
<mx:DataGrid dataProvider="{array_jmlh}" id="dgListBrg" doubleClickEnabled="true" doubleClick="selectListBrg()" left="10" right="10" top="10" bottom="40">
<mx:columns>
<mx:DataGridColumn headerText="Item Code" dataField="kode" width="130"/>
<mx:DataGridColumn headerText="Item Name" dataField="nama"/>
<mx:DataGridColumn headerText="Item Unit" dataField="unit" visible="false"/>
<mx:DataGridColumn headerText="Item Gambar" dataField="gambar" visible="false"/>
</mx:columns>
</mx:DataGrid>
</mx:TitleWindow>
That's it sample simple for Remote using Flex and AMFPHP framework with PHP file.
Showing posts with label amfphp. Show all posts
Showing posts with label amfphp. Show all posts
Wednesday, July 29, 2009
Subscribe to:
Posts (Atom)