Auteur: Jérôme Forget. Publié le 31 juillet 2006.
Il est parfois nécessaire d'envoyer des variables vers un script sur un serveur, afin de stocker certaines données dans une base de données par exemple. Cela est possible avec la méthode send() (ou sendAndLoad()) de l'objet LoadVars.
La première étape consiste à créer une instance de l'objet LoadVars, comme ceci:
var lvEnvoieDonnees:LoadVars = new LoadVars();
On doit ensuite définir des propriétés à cet objet. Chaque propriété correspond à une variable que l'on veut envoyer au script. Par exemple, ici, nous définissons deux propriétés et leur attribuons des valeurs:
lvEnvoieDonnees.ville = tVille.text;
lvEnvoieDonnees.province = tProvince.text;
Une fois les propriétés définies, on appelle la méthode send(). Celle-ci requiert deux paramètres: l'URL du script auquel envoyer les données et le nom de la fenêtre dans lequel sera envoyée la réponse. Notez que la méthode send() ovrira toujours une fenêtre de navigateur pour afficher la réponse. Si vous voulez effectuer des échanges de données transparents, utilisez plutôt la méthode sendAndLoad().
Dans l'exemple suivant, nous envoyons les variables à un script formulaire.php.
lvEnvoieDonnees.send("formulaire.php", "_blank");
Par défaut, les variables sont envoyés en utilisant la méthode GET. Si vous préférez utiliser la méthode POST, spécifiez-le en paramètre à la méthode send().
lvEnvoieDonnees.send("formulaire.php", "_blank", "POST");
La méthode sendAndLoad() fonctionne de façon similaire. Étant donné que cette méthode n'ouvrira pas de nouvelle fenêtre de navigateur, la réponse sera plutôt envoyée à un autre objet LoadVars. Voyez un peu comment nous pourrions envoyer les mêmes données que dans les exemples précédants en utilisant la méthode sendAndLoad().
var lvEnvoieDonnees:LoadVars = new LoadVars();
lvEnvoieDonnees.ville = tVille.text;
lvEnvoieDonnees.province = tProvince.text;
var lvRecoieDonnees:LoadVars = new LoadVars();
lvRecoieDonnees.onLoad = function(ok:Boolean):Void {
trace("une réponse du serveur est arrivée.");
}
lvEnvoieDonnees.sendAndLoad("formulaire.php", lvRecoieDonnees);
La méthode sendAndLoad() supporte aussi les modes GET et POST, GET étant le mode par défaut. Notez que dans l'environnement de test dans Flash, les données seront toujours envoyées en utilisant GET, même si POST est spécifié. Pour tester l'envoi de variables avec POST, vous devrez tester dans un navigateur.