PHP에서 Flex로 데이터를 보내는 방법은 많은데, 그 반대는 찾아봐도 제대로된 정보가 없어서 구현해 보았습니다.
유용하게 쓰세요 :)
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
//fx:Declarations 안에 아래 내용을 추가해주세요
<mx:HTTPService id="saveData" url="http://localhost/saveFromFlex.php"
method='POST'
result='OnHTTPResult(event);'
fault='OnHTTPFault(event);'
resultFormat='text'>
<mx:request xmlns="">
</mx:request>
</mx:HTTPService>
</fx:Declarations>
// 아래 함수들을 Script 안에 넣어주세요.
public function OnHTTPResult(event:ResultEvent):void
{
txtResult.htmlText= event.result.toString();
}
public function OnHTTPFault(event:FaultEvent):void
{
txtResult.text= event.fault.toString();
}
public function saveToDB(str:String):void
{
var params = new Array();
params["json"]=str; // params를 여러개 넣으셔도 됩니다. json이라는 변수를 PHP에서 $_POST['json']으로 받게 됩니다.
saveData.send(params);
}
// 아래 함수는 ArrayCollection을 PHP로 보낼 방법을 연구하다가, JSON형식의 String으로 보내면 좋을 것 같아서 만들어보았습니다.
public static function arrayCollectionToString( myArrayCollection:ArrayCollection ):String
{
var array1:Array;
var array2:Array;
var tmpStr:String;
array1 = new Array();
for each( var obj:Object in myArrayCollection )
{
array2 = new Array();
for ( var obj2:Object in obj )
{
if(obj[obj2] != null) tmpStr=obj[obj2];
else tmpStr="";
array2.push('"'+obj2+'":"'+tmpStr+ '"');
}
array1.push("{"+array2.join(", ")+"}");
}
return "["+array1.join(", ")+"]";
}
아래 코드를 임의의 위치에서 실행해주세요.
strSendToServer=arrayCollectionToString(arrayCollectionTojiBasicInfo);
saveToDB(strSendToServer);
PHP측 코드입니다.(JSON 형식이기 때문에 언어에 구애받지 말고 쓰시면 되겠습니다.)
$data=json_decode(stripslashes($_POST['json']),true);
이렇게 하면 data라는 변수에서 구조 그대로 배열로 받게 됩니다!
'웹개발 > Flex' 카테고리의 다른 글
FLEX arrayCollection to JSON 함수 (0) | 2013.07.03 |
---|---|
Gimbal lock 문제 (2) | 2009.07.13 |
Creating Materials - 육면체에 사진입히고 색상 변환 레이어 추가하기 (0) | 2009.07.02 |
Flex Alternativa 3D project 시작 (1) | 2009.07.02 |