2010-10-22 2 views
0

Comment publier des données à partir d'un fichier flex vers un fichier php? Je ne suis pas capable de créer une action.ActionScript POST

Répondre

5

Ce dont vous avez besoin est de créer un objet URLRequest où vous configurez votre méthode et les données à envoyer. Vous commencez ensuite la demande avec un objet Loader.

var req:URLRequest = new URLRequest(yourURL); 
req.method = URLRequestMethod.POST; 
var vars:URLVariables = new URLVariables(); 
vars.yourVar = 'yourValue'; 
req.data = vars; 
var ldr:Loader = new Loader(); 
ldr.load(req); 
1

Vous devez créer un service HTTPS afin d'envoyer des données à une application serveur comme un fichier PHP de Flex. Les données qui vont être envoyées peuvent être un XML, de cette façon dans votre fichier PHP, vous pouvez analyser ce XML et obtenir les informations qu'il contient.

J'utilise cette fonction pour transformer mes objets en XML puis envoyer ce XML dans le HTTPService:

public function objectToXML(obj:Object, root:String):XML { 
    var qName:QName = new QName(root); 
    var xmlDocument:XMLDocument = new XMLDocument(); 
    var simpleXMLEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument); 
    var xmlNode:XMLNode = simpleXMLEncoder.encodeValue(obj, qName, xmlDocument); 
    var xml:XML = new XML(xmlDocument.toString()); 
    return xml; 
} 

De cette façon, je crée des objets avec des propriétés normales et ne vous inquiétez pas sur la façon de créer le XML, puis, lorsque vous allez envoyer le code XML dans HTTPService, vous appelez la méthode "objectToXML" sur la méthode send de votre HTTPService.

Vous le faites comme ceci:

var myData:Object=new Object(); 
myData.name="Information"; 

var myService:HTTPService = new HTTPService(); 
myService.url = "http://example.com/yourFile.php"; 
myService.method = "POST"; 
myService.contentType="application/xml"; 
myService.send(objectToXML(myData,"parent"));