ok...
Maintenant, dernier prob... ça se complique pas mal...enfin pour moi en tout cas.
J'ai un formulaire en plusieurs étapes, qui change d'étapes a chaque bouton submit...toutes ces étapes se trouve dans le même fichier php...je récupère les valeur POST à chaque changement d'étapes pour finalement envoyer toutes mes valeurs dans ma derniere étape en "hidden" qui seront traités dans un autre fichier php.
Les secteurs sont une de ces étape et malheureusement pour moi, pas la derniere... ce qui fait que je dois les récupéré avant et donc avoir un systeme qui me permet de les récupérer grace à une variable qui s'incrémenterai...
est-ce que quelqu'un pourrait m'aider...si vous ne trouvez pas ce que je viens d'écrire assez claire, faites moi le savoir.
Ouais donc, je vous mets un bout de code pour que vous voyez un peu
if ($etape==2){
genereEntete("Inscription - Etape 2/5");
connection('127.0.0.1', 'Fr4nsou3', 'ii', 'mailinglist');
$form = new HTML_QuickForm('formstep2', 'post');
$form->addElement('header','EnTete','Etape 2 - Communiqués de Presse 1/2');
$renderer =& $form->defaultRenderer();
$renderer->setHeaderTemplate("<tr><td class='header2' colspan='4'><b>{header}<br /></b></td></tr>");
$spe3="<tr><td></td><td>{element} ";
$spe4=" {element}</td></tr>";
$spe2="<tr><td align='right' valign='top'><b>{label}</b></td><td valign='top' align='left'>{element} <a onmouseover="javascript:mouseOver('untitled.jpg',300,150)" onmouseout="javascript:mouseOut()"><img src="question2.gif" alt='aide'><img src="aide.jpg" alt="aide2"></a><br></td></tr>"; //utile pour l'aide qui s'affiche, voir function.js
$spe = "<tr><td align='right' valign='top'><b>{label}</b></td><td valign='top' align='left'><div class="endessous">{element}</div><br /></td></tr>";
$form->addElement('html', '<tr><td colspan=\'2\'><b>Vous souhaitez recevoir nos communiqués de presse par :</b></td></tr>');
$form->addElement('radio', 'communiques', '', 'Fax', 'fax');
$form->addElement('radio', 'communiques', '', 'Courrier électronique (e-mail)', 'mail');
$form->addElement('radio', 'communiques', '', 'Je ne souhaite pas recevoir vos communiqués de presse', 'non');
$form->addElement('html', '<tr><td> </td></tr><tr><td colspan=\'2\'><b>Selectionnez vos centres d\'intérêts : </b></td></tr>');
$paysSelect = & $form->addElement('select', 'grouppays', 'Groupe Pays : ');
$paysSelect->load($result);
$paysSelect->loadQuery($dsn, 'SELECT * FROM `sg_group_pays`', 'NOM_GROUP_PAYS', 'COD_GROUP_PAYS');
connection('127.0.0.1', 'Fr4nsou3', 'ii', 'mailinglist');
$req=mysql_query('SELECT * FROM `sg_objectif`');
while($secteur = mysql_fetch_array($req)){
$i+=1;
$form->addElement('html', "<tr><td><b>$titresecteur</b></td><td align='left'><input type='checkbox' name='secteur[]' value='".$secteur['COD_OBJECTIF']."'> ".$secteur['NOM_OBJECTIF']."</td></tr>") ;
$titresecteur='';
}
$renderer->setElementTemplate($spe2,'grouppays');
$renderer->setElementTemplate($spe,'organisme');
$renderer->setElementTemplate($spe,'langue');
$form->addRule('communiques', 'Vous devez choisir si vous désirez recevoir nos communiqués de presse', 'required','','client');
$form->addElement('html', '<input type="hidden" name="etape" value="3">');
$form->addElement('reset', 'bouton_clear', 'Effacer', 'class=\'button\'');
$form->addElement('submit', 'bouton_effacer', 'Etape 3 -->', 'class=\'button\'');
$form->setRequiredNote('<span style="color: #ff0000">* </span> champs obligatoires');
$form->setJsWarnings('Erreur de saisie','Veuillez corriger');
$renderer->setElementTemplate($spe3,'bouton_clear');
$renderer->setElementTemplate($spe4,'bouton_effacer');
$form->display();
genereFin();
$_SESSION['nom']=$_POST['nom'];
$_SESSION['prenom']=$_POST['prenom'];
$_SESSION['organisme']=$_POST['organisme'];
$_SESSION['autrorga']=$_POST['autrorga'];
$_SESSION['adresse']=$_POST['adresse'];
$_SESSION['email']=$_POST['email'];
$_SESSION['codepostal']=$_POST['codepostal'];
$_SESSION['ville']=$_POST['ville'];
$_SESSION['pays']=$_POST['pays'];
$_SESSION['telephone']=$_POST['telephone'];
$_SESSION['fax']=$_POST['fax'];
}
if ($etape==1){
genereEntete("Inscription - Etape 1/5");
connection('127.0.0.1', 'Fr4nsou3', 'ii', 'mailinglist');
$form = new HTML_QuickForm('formstep1', 'post');
$renderer =& $form->defaultRenderer();
$form->addElement('header','EnTete','Etape 1 - Vos coordonnées');
$renderer->setHeaderTemplate("<tr><td class='header2' colspan='4'><b>{header}</b></td></tr>");
$spe1="<tr><td></td><td>{element} ";
$spe2=" {element}</td></tr>";
$form->addElement('text', 'nom', ' Nom : '); //nom
$form->addElement('text', 'prenom', ' Prénom : '); //prénom
$form->addElement('html', "<tr><td align='right' valign='top'><b>Vous êtes :</b></td>
<td valign='top' align='left'><select name='organisme' onChange='afficherAutre()'>
<option value='1'>Un organisme de presse</option>
<option value='2'>Un particulier</option>
<option value='3'>Une Organisation Non Gouvernementale</option>
<option value='4'>Autre</option>
</select><br>
<tr><td align='right'><span id=autre style="display: none"><b> Autre :</b><br /></span></td><td>
<input type="text" id="mots" name="autrorga" style="display: none"></td></tr>"); //organisme, voir function.js
$form->addElement('text', 'email', ' E-mail : ');// E-mail
$form->addElement('text', 'adresse', ' Adresse : '); // Adresse
$form->addElement('text', 'codepostal', ' Code postal : '); //Code postale
$form->addElement('text', 'ville', ' Ville : '); //ville
$paysSelect = & $form->addElement('select', 'pays', ' Pays :'); //Pays
$paysSelect->load($result);
$paysSelect->loadQuery($dsn, 'SELECT * FROM `sg_pays`', 'NOM_PAYS', 'COD_PAYS'); //Pays, directement de la base de données
$form->addElement('text', 'telephone', ' Téléphone : '); //téléphone
$form->addElement('text', 'fax', 'Fax : '); //fax
$form->addElement('html', '<input type="hidden" name="etape" value="2">');
$form->addRule('prenom', 'Vous devez saisir un prenom', 'required','','client'); //champs requis, si non rempli, alerte JavaScript
$form->addRule('nom', 'Vous devez saisir un nom', 'required','','client');
$form->addRule('adresse', 'Vous devez saisir une adresse', 'required','','client');
$form->addRule('codepostal', 'Vous devez saisir un code postal', 'required','','client');
$form->addRule('ville', 'Vous devez saisir une ville', 'required','','client');
$form->addRule('email', 'Vous devez saisir une adresse de courrier électronique', 'required','','client');
$form->addRule('telephone', 'Veuillez entrez un numéro de téléphone valide', 'numeric', '', 'client');
$form->addRule('fax', 'Veuillez entrez un numéro de Fax valide', 'numeric', '', 'client');
$form->applyFilter('nom','trim') ; //enlève les espace à la fin
$form->applyFilter('prenom','trim') ;
$form->setRequiredNote('<span style="color: #ff0000">* </span> champs obligatoires');
$form->setJsWarnings('Erreur de saisie','Veuillez corriger');
$form->addElement('reset', 'bouton_clear', 'Effacer', 'class=\'button\'');
$form->addElement('submit', 'bouton_effacer', 'Etape 2 -->', 'class=\'button\'');
$renderer->setElementTemplate($spe1,'bouton_clear');
$renderer->setElementTemplate($spe2,'bouton_effacer');
if ($form->validate()) {
echo "Toutes les règles sont respectées<br>";
}
else {
$form->display();
}
genereFin();
}
EDIT : Ouais, désolé pour le double post mais j'avais commencé le message et quand j'ai fini le message et que je l'ai envoyé, j'étais plus loggué.