PHP, JavaScript, Ajax, jQuery, ActionScript, Flex, AIR, Facebook App, Linux, Apache, MySQL...

2010年6月17日 星期四

[ActionScript]使用 POST 傳遞參數,與 PHP 做溝通

這裡講解如何在 Flex 和 Flash 中,使用 POST 的方式把參數傳遞給 PHP,PHP 再回傳 XML 給 Flash 做處理。
ActionScript 程式碼:
//URL請求物件
var request:URLRequest = new URLRequest("http://www.xxx.com/xml.php");
//URL參數
var params:URLVariables = new URLVariables();
params.param1 = "value1";//參數1
params.param2 = "value2";//參數2
request.method = URLRequestMethod.POST;//參數傳遞方式使用POST
//URL載入物件
var variables:URLLoader = new URLLoader();
variables.dataFormat = URLLoaderDataFormat.TEXT;//接收的資料格式
variables.addEventListener(Event.COMPLETE, completeHandler);

try{
 trace("Loading...");
    variables.load(request);
}
catch(e:Error){
 trace("Unable to load URL:" + e);
}

function completeHandler(event:Event):void{
 trace(event.target.data is String);//輸出true
    var resultXML:XML = new XML(event.target.data);
    var xmlList:XMLList = resultXML.item.title;
    for each(var title:XML in xmlList){
     trace(title);
    }
}

PHP 程式碼:
$param1 = $_POST['param1'];
$param2 = $_POST['param2'];

$doc = new DOMDocument('1.0', 'utf-8');
$doc->formatOutput = true;
$root = $doc->createElement('root');
$doc->appendChild($root);

$item = $doc->createElement('item');
$title = $doc->createElement('title');
$title->appendChild(
 $doc->createTextNode($param1)
);
$item->appendChild($title);
$root->appendChild($item);

$item = $doc->createElement('item');
$title = $doc->createElement('title');
$title->appendChild(
 $doc->createTextNode($param2)
);
$item->appendChild($title);
$root->appendChild($item);

header('Content-Type: text/xml');
//輸出XML
echo $doc->saveXML();

0 意見:

張貼留言