Formulaire flash inactif si j'ajoute Combox

Fermé
ana648 - 28 mai 2009 à 16:56
 lebangkifaimeuh - 17 juin 2010 à 13:36
Bonjour,

J'ai essayé ce tutoriel ( http://wiki.mediabox.fr/tutoriaux/flash/formulaire_flash_php ) pour faire un formulaire Flash/php:

Il fonctionne parfaitement quand je le laisse tel quel, mais si j'ajoute une ComboBox il devient complètement inactif (le bouton "envoyer" ne déclenche aucune action: ni de message d'erreur, ni de réussite, donc pas de mail...). Regardez: http://obscurantisorder.free.fr/kompersonne/labo/formulaireTEST.swf

Je dois faire une erreur (ou DES erreurs!) dans le code (faut dire que j'y vais un peu à tâtons parce que je débute). Ça fait 3 jours que je cherche sur le net et aucune solution ne fonctionne... Quelqu'un pourrait m'aider svp?


Merci!

Voici mon code AS:

import mx.controls.TextInput;
import mx.controls.TextArea;
import mx.controls.CheckBox;
import mx.controls.ComboBox;
import mx.controls.Button;

// On référence les occurences de compos pour profiter du typage strict
var tiNom:TextInput = this.nom_ti;
var tiPrenom:TextInput = this.prenom_ti;
var tiEmail:TextInput = this.email_ti;
var taCommentaire:TextArea = this.commentaire_ta;
var taSortie:TextArea = this.sortie_ta;
var cbLettre:CheckBox = this.lettre_cb;
var cbPrestation1:ComboBox = this.prestation1_cb;
var mcEnvoyer:Button = this.envoyer_mc;

// Initialisation des compos
taSortie["depthChild0"]._visible = false; // hack pour remplacer les 4 lignes ci-dessus
taSortie.setStyle("color", "0xB13501");
taSortie.setStyle("fontStyle", "italic");
taSortie.label.selectable = false;
cbLettre.label = "Recevoir la lettre d'information";
cbPrestation1.label = "logo,charte";


function recepbox()
{
prestation1 = choix.getValue();
trace(prestation1);
}

// Ordres de tabulation
tiNom.tabIndex = 1;
tiPrenom.tabIndex = 2;
tiEmail.tabIndex = 3;
cbLettre.tabIndex = 4;
taCommentaire.tabIndex = 5;
mcEnvoyer.tabIndex = 6;
cbPrestation1.tabIndex = 7;

var nom:String;
var prenom:String;
var email:String;
var recevoirLettre:Boolean;
var prestation1:Boolean;
var commentaire:String;

// Fonctions outils

function afficherEnSortie(pChaine:String):Void
{
	taSortie.text = pChaine;
}

function reinitFormulaire():Void
{
	tiNom.text = tiPrenom.text = tiEmail.text = taCommentaire.text = "";
	cbLettre.selected = false;
	cbPrestation1.selected = false;
}

function validerFormulaire ():String
{
	nom = tiNom.text;
	prenom = tiPrenom.text;
	email = tiEmail.text;
	commentaire = taCommentaire.text;
	recevoirLettre = cbLettre.selected;
	
	var erreurs:String = "";
	
	if (nom == "") erreurs += "Merci de remplir le champ 'nom'" + newline;
	if (prenom == "") erreurs += "Merci de remplir le champ 'prénom'" + newline;

	if (email == "") erreurs += "Merci de remplir le champ 'email'" + newline;
	else
	{
		var atIndex:Number = email.indexOf("@");
		var dotIndex:Number = email.indexOf(".", atIndex);
		trace(atIndex + " " + dotIndex);
		if (atIndex == -1 || dotIndex == -1 || dotIndex - atIndex <= 1)
			erreurs += "L'email n'est pas valide" + newline;
	}
	return erreurs;
}

function formerMessageText ():String
{
	var message:String = "Formulaire :";
	message += "Origine : " + this._url + "\r\n";
	message += "Nom : " + nom + "\r\n";
	message += "Prénom : " + prenom + "\r\n";
	message += "Adresse email : " + email +"\r\n";
	message += "choix :" + prestation1 + "/r/n"; 
	if (recevoirLettre)
		message += "Personne souhaitant recevoir la lettre d'information.\r\n";
	if (commentaire != "")
		message += "Commentaire :\r\n";
		message += commentaire;
	if (prestation1)
		message += "logo,charte.\r\n";
		
	
	return message;
}

function formerMessageHtml ():String
{
	var message:String = "<html><head><style type='text/css'> p{font: 12px Arial} </style></head><body>";
	message += "<h4>Formulaire : </h4>";
	message += "<p>Origine : " + this._url + "</p>";
	message += "<p>Nom : " + nom + "<br />";
	message += "Prénom : " + prenom + "<br />";
	message += "Adresse email : <a href='mailto:" + email + "'>" + email +"</a></p>";
	message += "choix : " + prestation1 + "<br />"; 
	if (recevoirLettre)
		message += "<p>Personne souhaitant recevoir la lettre d'information.</p>";
	if (commentaire != "")
		message += "<p><u>Commentaire :</u><br />";
		message += commentaire;
	message += "</p></body></html>";
	
	return message;
}

function envoyerMail ():Void
{
	mcEnvoyer.enabled = false;
	
	var envoyeur:LoadVars = new LoadVars();
	var receveur:LoadVars = new LoadVars();	
	
	envoyeur.sujet = "Formulaire";
	envoyeur.messageText = formerMessageText ();
	envoyeur.messageHtml = formerMessageHtml ();
	envoyeur.expediteur = prenom + " " + nom;
	envoyeur.mailReponse = email;
	
	receveur.onLoad = onMailEnvoye;
	
	envoyeur.sendAndLoad("formulaireTEST.php", receveur, "POST");
	afficherEnSortie("Envoi en cours...");
}

function onMailEnvoye (pSuccess:Boolean):Void
{
	mcEnvoyer.enabled = true;
	if (!pSuccess)
	{
		afficherEnSortie("Problème avec le script PHP.");
	}
	else if (this.erreurPHP == "")
	{
		afficherEnSortie("L'envoi s'est terminé avec succès.");
		reinitFormulaire();
	}
	else
	{
		afficherEnSortie("Erreurs PHP : \n" + this.erreurPHP);
	}
}





Et mon code dans la page php:

<?php
function decoder($texte){
        $texte = utf8_decode($texte); // converti en iso-8859-1
        $texte = stripslashes($texte); // élimine les anti-slashs d'échappement
        $texte = nl2br($texte); // converti les retours  en <br />
        $texte = trim($texte); // élimine les '\n', '\r', '\t' etc
        return $texte;
}
 
$erreurPHP="";

/* Paragraphe à decommenter pour tester le script php seul, sans le fla
$_POST['sujet'] = 'formulaire Test';
$_POST['messageHtml'] = '<html><body>Salut<br /> mon cher<br /><br />Bye</body></html>';
$_POST['messageText'] = "Salut  mon cher  Bye";
$_POST['expediteur'] = "expediteur@fai.fr";
$_POST['mailReponse'] = "expediteur@fai.fr";
*/

if(isset($_POST['sujet']))$sujet = $_POST['sujet'];
else $erreurPHP .= "Variable 'sujet' non transmise\n";
 
if(isset($_POST['messageHtml']))$messageHtml = $_POST['messageHtml'];
else $erreurPHP .= "Variable 'message' non transmise\n";

if(isset($_POST['messageText']))$messageTexte = $_POST['messageText'];
else $erreurPHP .= "Variable 'message' non transmise\n";
 
if(isset($_POST['expediteur']))$expediteur = $_POST['expediteur'];
else $erreurPHP .= "Variable 'expediteur' non transmise\n";
 
if(isset($_POST['mailReponse']))$mailReponse = $_POST['mailReponse'];
else $erreurPHP .= "Variable 'mailReponse' non transmise\n";
 
if($erreurPHP != "") echo utf8_encode("erreurPHP=".$erreurPHP);
else
{
	$to = "anais@kom-personne.com";
	$sujet = decoder($sujet);
	$expediteur = decoder($expediteur);
	$messagehtml = decoder($messageHtml);
	$messageTexte = utf8_decode($messageTexte);
	
	 //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------

     $frontiere = '-----=' . md5(uniqid(rand()));

     //-----------------------------------------------
     //HEADERS DU MAIL
     //-----------------------------------------------

     $headers = 'From: '.$expediteur.' <'.$mailReponse.'>'."\n";
     $headers .= 'Return-Path: <'.$mailReponse.'>'."\n";
     $headers .= 'MIME-Version: 1.0'."\n";
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"'."\n";
	 $headers .= 'Content-Type: text/html; charset=iso-8859-1";
	 $headers .= 'Content-Transfer-Encoding: 8bit';
	 

     //-----------------------------------------------
     //MESSAGE TEXTE
     //-----------------------------------------------
     $message = "This is a multi-part message in MIME format\n\n";

     $message = "--$frontiere\n";
     $message .= "Content-Type: text/plain; charset=UTF-8\n";
     $message .= "Content-Transfer-Encoding: 8bit\n\n";
     $message .= $messageTexte."\n\n";

     
	 //-----------------------------------------------
     //MESSAGE HTML
     //-----------------------------------------------
     $message .= "--$frontiere\n";
     $message .= "Content-Type: text/html; charset=UTF-8\n";
     $message .= "Content-Transfer-Encoding: 8bit\n\n";
     $message .= $messageHtml."\n\n";
     
     $message .= "--$frontiere--\n"; 

	$mail_OK = mail($to, $sujet, $message, $headers) ;
	
 
	if (!$mail_OK)
	{
		$erreurPHP .= "Problème lors de l'envoi du mail";
		
	}
	echo utf8_encode("erreurPHP=".$erreurPHP);
}
?>
A voir également:

1 réponse

lebangkifaimeuh
17 juin 2010 à 13:36
j'ai le même problème as tu trouvé une solution??
0