我在Flash CS5上构建这个AIR应用程序,并且我有这个TileList从数据库加载其数据(图像和名称)。
我想做一个查询与名称的任何项目的Tilelist点击时,所以我需要将该项的名称发送到一个PHP文件,将执行查询。
我在考虑一个函数,当项目被点击时,将项目名称加载到一个变量。
我如何将它发送到PHP文件,我如何将它加载到查询?
非常感谢所有帮助我的人。
我想对php文件的查询是这样的:SELECT lat, lon FROM mapdata WHERE name=theVariable;
您可以通过$_GET或$_POST将其发送到php文件。Get看起来像:
... query.php?string={ INSERT ENCODED STRING }
您可以使用URLLoader
向web服务发送和接收数据。只需添加所需的数据(可能是URLVariables
)。出于安全原因,我显然会避免发送这样的完整查询。
不要忘记在将输入放入查询之前清理输入!
我在PHP方面帮不上什么忙——我用PHP已经很多年了。您将使用$_POST或$_GET,我怀疑有现成的函数来清理数据,因此将其发送到数据库是安全的(某种形式的escape
或encode
)。
正如jonathan 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,以防万一您正在从另一个域发出请求。