2012-05-12 62 views
1

可能重复:
Passing variable FROM flash to HTML/php从Flash传递变量到PHP

我使用的Flash(ActionScript 3.0)这个项目的工作。基本上,这是一个拖放应用程序。获得用户输入后,我需要将使用PHP的变量传递给MySQL服务器。这是我想出代码:

的ActionScript:

import flash.net.URLVariables; 
import flash.net.URLRequest; 
import flash.net.navigateToURL; 
import flash.events.MouseEvent; 

var urlVariables:URLVariables = new URLVariables; 
var pi:pizza=new pizza(); 
var totalAmt:Number; 

totalAmt=pi.totalPrice; 
urlVariables.totalAmount = totalAmt;//"" contains what should be passed 
//urlVariables.password = "testpass";//""contains what should be passed 


var urlRequest:URLRequest = new   URLRequest("http://172.21.147.103/csc207/bcg2g2/customise.php"); 
urlRequest.data = urlVariables; 

sendToURL(urlRequest) 

PHP:

<?php 

$total = $_GET["totalAmount"]; 
//$pass = $_GET["password"]; 

echo $total; 
//echo $userName."::".$pass; 

?> 

我最终发送给PHP变量是总金额。有人可以就代码是否正确给出一些反馈吗?服务器可以使用用户名和密码进行访问。这是否需要指定?如果是这样,我该怎么做?

预先感谢您!

编辑:谢谢你们的回复!

我已经相应地更改了代码:
import flash.net.URLVariables; import flash.net.URLRequest; import flash.net.URLLoader; import flash.net.URLRequestMethod; import flash.net.navigateToURL; import flash.events.MouseEvent;

var urlString:String = "http://172.21.147.103/csc207/bcg2g2/customise.php"; 

function Submit():void 
{ 
    var requestVars:URLVariables = new URLVariables(); 
    requestVars.totalAmt= 50; // Dummy data to be sent to php 

    var urlRequest:URLRequest = new URLRequest(); 
    urlRequest.url = urlString; 
    urlRequest.method = URLRequestMethod.GET; 
    urlRequest.data = requestVars; 

    var loader:URLLoader = new URLLoader(); 
    loader.dataFormat = URLLoaderDataFormat.TEXT; 
    loader.addEventListener(Event.COMPLETE, loaderCompleteHandler); 

sendToURL(urlRequest) 

    try { loader.load(urlRequest); } 

    catch (error:Error) { // Handle Immediate Errors 
} 
} 

function loaderCompleteHandler(e:Event):void 
{ 
    trace(e.target.data); // Response Text 
} 

该值仍然没有得到体现。我可以检查一下我是否正确吗?我应该将SWF文件上传到我正在处理的网站,还有什么我应该做的?另外,有关身份验证的信息非常有用!但我很困惑,我是否应该在代码中使用它。任何建议/建议?

+0

除了涉及到传递给HTML通过Javascript,而不是直接到PHP(虽然答案是张贴:) :) – Robbie

回答

1

正如Hakar所说:退房Passing variable FROM flash to HTML/php - 未接受的答案就是你想要的(接受的HTML答案,然后依赖HTML发布到PHP - 如果你想要的话,你需要这个也通过cookies,但如果你不这样做,你可以直接调用PHP)。

至于用户名/密码,你可以在这里找到答案:Flex 3 - how to support HTTP Authentication URLRequest?;虽然这是Flex,我相信添加auth的方法是一样的。

+0

谢谢!关于认证的部分是有用的!但我很困惑这是否应该加上肯定或如果它是一个选择..任何意见? – an1

+0

如果你不需要它,不要添加它。 – Robbie

+0

好的,谢谢! – an1

0

我会建议使用加载方法,因为您可能需要稍后处理事件。

答案,因为你想获得PHP变量,你做一个GET请求,是这样的:

var urlString:String = "http://172.21.147.103/csc207/bcg2g2/customise.php"; 

function Submit():void 
{ 
    var requestVars:URLVariables = new URLVariables(); 
    requestVars.totalAmt= 50; // Dummy data to be sent to php 

    var request:URLRequest = new URLRequest(); 
    request.url = urlString; 
    request.method = URLRequestMethod.GET; 
    request.data = requestVars; 

    var loader:URLLoader = new URLLoader(); 
    loader.dataFormat = URLLoaderDataFormat.TEXT; 
    loader.addEventListener(Event.COMPLETE, loaderCompleteHandler); 

    try { loader.load(request); } 

    catch (error:Error) { // Handle Immediate Errors } 
} 

function loaderCompleteHandler(e:Event):void 
{ 
    trace(e.target.data); // Response Text 
} 
约的用户名/密码位,再加上其他岗位接受的答案
+0

谢谢!我正在通过将swf文件嵌入到我正在处理的网站中吗?还有什么我应该做的?如果你能看看我做的编辑,我会非常感激!再次感谢!! – an1

+0

您不必使用sendtURL函数。无需在该部分进行修改...您只使用加载方法 – loxxy

+0

好的,我将删除它,谢谢! – an1