如何将AS3中的字符串发送到PHP文件,以便可以用来进行数据库查询

时间:2011-10-06 19:37:54

标签: php actionscript-3 air flash-cs5

我在Flash CS5上构建这个AIR应用程序,我有这个TileList从数据库加载它的数据(图像和名称)。

我想在点击时使用Tilelist中的任何项目进行查询,因此我需要将该项目的名称发送到将执行查询的PHP文件。

我想到了一个在单击项目时将项目名称加载到变量的函数。

如何将其发送到PHP文件以及如何将其加载到查询中?

非常感谢任何有帮助的人。

更新

我想在php文件上查询的内容如下:SELECT lat,lon FROM mapdata WHERE name = theVariable ;

3 个答案:

答案 0 :(得分:0)

您可以通过$ _GET或$ _POST将其发送到php文件。看起来像是:

... query.php?string={ INSERT ENCODED STRING }

答案 1 :(得分:0)

您可以使用URLLoader向/从Web服务发送和接收数据。只需添加您想要的数据(可能为URLVariables)。出于安全原因,我会避免显然发送这样的全部查询。

在将输入放入查询之前,请不要忘记清理输入!

我对PHP部分帮不了多少 - 自从我在PHP工作多年以来。你会使用$ _POST或$ _GET,我怀疑有清理数据的现成函数,所以可以安全地将它发送到数据库(某种形式的escapeencode)。

答案 2 :(得分:0)

正如Jonatan Hedborg所说:

var url:String = "http://www.[yourDomain].com/application.php";
var request:URLRequest = new URLRequest(url);
var variables:URLVariables = new URLVariables();
variables.exampleSessionId = new Date().getTime();
variables.exampleUserLabel = "guest";
request.data = variables;
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onLoadData);
loader.addEventListener(IOErrorEvent.IO_ERROR, onDataFiledToLoad);
loader.addEventListener(IOErrorEvent.NETWORK_ERROR, onDataFiledToLoad);
loader.addEventListener(IOErrorEvent.VERIFY_ERROR, onDataFiledToLoad);
loader.addEventListener(IOErrorEvent.DISK_ERROR, onDataFiledToLoad);
loader.load(request);

function onLoadData(e:Event):void {
    trace("onLoadData result=" + e.target.data);
}
function onDataFiledToLoad(e:IOErrorEvent):void {
    trace("onDataFiledToLoad error=" + e.text);
}

不要忘记在服务器上添加crossdomain.xml,以防万一,例如,如果您是从另一个域发出请求。