Send Array to Flex app.

เคยใช้ทั้งแบบโยนไปเป็น object และแบบ array ใช้งานจริงส่วนใหญ่ผมจะใช้เทคนิคโยนไปเป็น object ทีละแถว แต่ถ้าอยากได้แบบโยนไปเป็น array ก็ทำได้ครับ ทั้งแบบที่ใช้ HTTPService และ RemoteObject

CREATE TABLE `tbl_array` (
 `array_auto_id` int(11) NOT NULL auto_increment,
 `array_val` varchar(255) default NULL,
 PRIMARY KEY  (`array_auto_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

กรณีใช้ HTTPService
httpservice/array2php.php

<?php
class TblArrayDao {
 function  __construct() {
 mysql_connect("localhost", "root", "123456");
 mysql_select_db("db_array");
 mysql_query("SET NAMES 'utf8'");
 }
 function  __destruct() {
 mysql_close();
 }
 function insertArray($ar){
 if( !is_array($ar) ) return FALSE;

 $query = " INSERT INTO tbl_array(array_val) ";
 $query_vals = "";
 foreach( $ar as $key=>$val ){
 $query_vals .= ( $query_vals )?", ('".$val."')":"VALUES('".$val."')";
 }

 $query .= $query_vals;

 mysql_query($query);
 }
}

//ini_set('default_charset', 'UTF-8');
header('Content-Type:text/html; charset=UTF-8');
//print_r($_GET);
$tbl_array = new TblArrayDao();
$tbl_array->insertArray($_GET);

กรณีใช้ RemoteObject
amfphp/services/array2amfphp/TblArrayDao.php

<?php
/**
 * Description of TblArrayDao
 *
 * @author knopsod of http://thaiflexdev.wordpress.com
 */
class TblArrayDao {
 function  __construct() {
 mysql_connect("localhost", "root", "123456");
 mysql_select_db("db_array");
 mysql_query("SET NAMES 'utf8'");
 }
 function  __destruct() {
 mysql_close();
 }
 function insertArray($ar){
 if( !is_array($ar) ) return FALSE;

 $query = " INSERT INTO tbl_array(array_val) ";
 $query_vals = "";
 foreach( $ar as $key=>$val ){
 $query_vals .= ( $query_vals )?", ('".$val."')":"VALUES('".$val."')";
 }

 $query .= $query_vals;

 mysql_query($query);
 }
}

Flex project
FxArray.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

 <mx:Script>
 <![CDATA[
 import mx.controls.Alert;
 import mx.rpc.events.FaultEvent;
 import mx.rpc.events.ResultEvent;

 private var ar:Array = ["fx_one","fx_two","fx_three"];

 private function btClickHs():void{
 hs.send(ar);
 }

 private function faultHandler( event:FaultEvent ):void{
 Alert.show("Fail");
 }

 private function hsResultHandler( event:ResultEvent ):void{
 Alert.show("HTTPService success");
 }

 private function btClickRm():void{
 rm.getOperation("insertArray").send(ar);
 }

 private function rmResultHandler( event:ResultEvent ):void{
 Alert.show("RemoteObject success");
 }

 ]]>
 </mx:Script>

 <mx:HTTPService id="hs" url="httpservice/array2php.php"
 fault="faultHandler(event)"
 result="hsResultHandler(event)"/>

 <mx:RemoteObject id="rm"
 endpoint="amfphp/gateway.php"
 source="array2amfphp.TblArrayDao"
 destination="none"
 fault="faultHandler(event)"
 result="rmResultHandler(event)"/>
 <!-- Use RemoteObject with out services-config.xml file -->

 <mx:Button click="btClickHs()" label="Send by HTTPService"/>
 <mx:Button click="btClickRm()" label="Send by RemoteObject"/>
</mx:Application>

Ref : http://www.thaiflashdev.com/home/index.php?topic=12025.msg77478#msg77478

Advertisement

About knopsod
Developer by Flex/Flash, ActionScript, PHP, Java, MySQL,PostgreSQL, Oracle, Ebay, PayPal, Alibaba, iOffer รับปรึกษา สอน และพัฒนาซอฟแวร์ ซื้อ ขาย ประมูลสินค้าออนไลน์

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.