0

我想知道是否有人可以解释我如何在 AS3 中读取 MySQL 结果数组。

我在用:

var loader:URLLoader = new URLLoader();
var urlReq:URLRequest = new URLRequest("http://domain.com/get-api.php");
var urlVars:URLVariables = new URLVariables();
loader.dataFormat = flash.net.URLLoaderDataFormat.TEXT;
urlReq.method = URLRequestMethod.POST;
urlReq.data = urlVars;
urlVars.mySubmittedRateID = GlobalVariables.mySubmittedRateID;
urlVars.myPostcode = GlobalVariables.currentPostcode;
loader.addEventListener(flash.events.Event.COMPLETE, getDataOnComplete);
loader.load(urlReq);

将参数(实际上是 2)传递给 get-api.php 文件。在文件中,我 PHP 读取参数和一个普通的 SQL select where 语句,该语句获取与参数匹配的所有结果。

我的 getDataOnComplete 函数是:

private function getDataOnComplete(event:flash.events.Event):void
{
    var loader:URLLoader = new URLLoader(event.target);
    var resultsArray:Array = JSON.decode(loader.data);
}

我的PHP:

$row_array['done'] = "true";
return json_encode($row_array);

错误:

Error: Error #2101: The String passed to URLVariables.decode() must be a URL-encoded query string containing name/value pairs.
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

出于某种原因,我什至无法使用 getDataOnComplete 函数。

4

1 回答 1

0

然后你的 php mysql 结果将是数组

在 php 方面,您需要将结果数组转换为 json_encode($result_array) 之类的

echo json_encode($result_array); //Note here not return statement;

在 as3 侧

您可以使用具有本机 JSON 类(此处使用 AIR 类)或as3corelib的最新 AIR SDK来解析 JSON 数据。

private function getDataOnComplete(event:flash.events.Event):void
{
  var resultObj:Object = event.target.data;
  var resultsArray:Object = JSON.stringify(resultObj);
}

更多细节pass-an-array-from-php-to-actionscript-3

于 2013-01-04T07:52:38.383 回答