Oké, alors je fignole une page d'inscription pour un site qui servira d'aide pour des agriculteurs.
Sur ce formulaire, en premier lieu, la personne doit renseigner son métier, qui sont de 3 différents :
Sica (id : 3) qui sont des Societés d'Iterêts Collectif Agricol
Exploitant (id : 4) : gerant d'une exploitation agricole
Ouvrier agricole (id : 5) qui travaille au sein d'une exploitation.
Si il choisi SICA, le formulaire doit afficher dans une balise <select> la liste des SICA enregistrées dans la base, si il opte pour Exploitant, il choisit la SICA auquel il est affilié ainsi que le numero de son exploitation (que l on appelle numero de pacage).
Pour ça que j ai créé deux <div> qui sont par defaut masqués et qui s'affiche en fonction du choix de l'utilisateur.
Code javascript:
Code : Tout sélectionner
<script type="text/javascript">
function changeDiv(numOption){
var expl = document.getElementById("div_expl");
var sica = document.getElementById("div_sica");
//alert("Num de l option "+numOption);
// var numOption = this.value; // this correspond ici au select
//EXPLIUTATIOn
if(numOption == 4){
expl.style.display = "block";
sica.style.display = "none"
}
//SICA
if(numOption == 3) {
expl.style.display = "none";
sica.style.display = "block";
}
/*else{
sica.style.display = "none";
expl.style.display = "none";
}*/
}
</script>
Sélection du métier
<p class="consignes-form">Sélectionnez votre métier</p>
<?php
$sCodeInput = '<select size="1" name="num_level" id="num_level" style="max-width: 200px;" onchange="changeDiv(this.value);"';
if (!$oInscription->m_bModeEdition ){
$sCodeInput .= 'disabled="disabled"';
}
$sCodeInput .= '>';
$sCodeInput .= '<option>Sélectionner</option>';
foreach ($oInscription->m_aListeLevel as $sCle => $sValeur) {
$sCodeOption = '<option';
$sCodeOption .= ' style="width: 100px;" value=' . $sCle . '>';
$sCodeOption .= $sValeur['level'].'</option>';
$sCodeInput .= $sCodeOption;
}
$sCodeInput .= '</select>';
echo $sCodeInput;
?>
<br />
Si l'user opte pour Exploitation :
<div id="expl" style="display:none;">
<p class="consignes-form">Si vous êtes exploitant :</p>
<p class="consignes-form">Sélectionnez votre SICA</p>
<?php
$sCodeInput = '<select name="sica" id="sica" class="marge-combo" style="max-width:200px;"';
if (!$oInscription->m_bModeEdition ){
$sCodeInput .= 'disabled="disabled"';
}
$sCodeInput .= '>';
$sCodeInput .= '<option value="1">Sélectionner</option>';
foreach ($oInscription->m_aListeSica as $sCle => $sValeur) {
$sCodeOption = '<option';
$sCodeOption .= ' style="width: 100px;" value="'.$sCle.'"';
$sCodeOption .= '>';
$sCodeOption .= $sValeur['nom_sica'].'</option>';
$sCodeInput .= $sCodeOption;
}
$sCodeInput .= '</select>';
echo $sCodeInput; ?>
<p class="consignes-form">Selectionnez le numéro de pacage de votre exploitation</p>
<?php
$sCodeInput = '<input type="text" id="num_pac" name="num_pac" maxlength="50" size="25" class="taille-champ-saisie"';
if (!$oInscription->m_bModeEdition){
$sCodeInput .= 'disabled="disabled"';
}
$sCodeInput .= '>';
echo $sCodeInput; ?>
</div>
Et dans le cas ou il opte pour SICA :
<div id="sica" style="display:none;">
<p class="consignes-form">Si representez une SICA :</p>
<p class="consignes-form">Sélectionnez votre SICA</p>
<?php
$sCodeInput = '<select name="sica" id="sica" class="marge-combo" style="max-width: 200px;"';
if (!$oInscription->m_bModeEdition ){
$sCodeInput .= 'disabled="disabled"';
}
$sCodeInput .= '>';
$sCodeInput .= '<option value="1">Sélectionner</option>';
foreach ($oInscription->m_aListeSica as $sCle => $sValeur) {
$sCodeOption = '<option';
$sCodeOption .= ' style="width: 100px;" value="'.$sCle.'"';
$sCodeOption .= '>';
$sCodeOption .= $sValeur['nom_sica'].'</option>';
$sCodeInput .= $sCodeOption;
}
$sCodeInput .= '</select>';
echo $sCodeInput;
?>
</div>
Le probleme venais apparement du nommage des <div>, il y avait conflit entre le nom du div sica (renommé en div_sica et les balises select qui s'appele aussi sica.
Probleme résolu (pendant la redaction du post qui plus est !!)
Merci bcp
