Code : Tout sélectionner
<form action="basket.php" method="post" name="chgclub" id="chgclub">
<fieldset style="border: 3px double #333399">
<legend>= Sélectionnez une division puis un club =</legend>
<br>
<select name="division" id="division" onChange="afficherBouton(this.value,'envoyer')";>
<option value="vide">- - - Choisissez une division - - -</option>
<option value="8">ProA</option>
</select>
<!-- ICI, le secret : on met un bloc avec un id ou va s'insérer le code de
la seconde liste déroulante -->
<span id="blocClubs"></span><br />
<br>
<input type="submit" name="ok" id="envoyer" value="Envoyer" style="display: none">
</fieldset>
</form>Code : Tout sélectionner
<SCRIPT LANGUAGE="JavaScript">
function afficherBouton(valeur, btn)
{
var bouton = document.forms.chgClub.elements.[btn];
if(valeur != -1)
{
bouton.style.display = 'inline';
}
else
{
bouton.style.display = 'none';
}
}
</SCRIPT>Code : Tout sélectionner
var bouton = document.forms.chgClub.elements.[btn]; Code : Tout sélectionner
var bouton = document.forms.chgClub.elements[btn]; Code : Tout sélectionner
function afficherBouton(valeur, btn)
{
var bouton = document.forms.chgclub.elements[btn];
if(valeur != -1)
{
bouton.style.display = 'inline';
}
else
{
bouton.style.display = 'none';
}
}
Code : Tout sélectionner
function changeClub(tab,IdDivision)
{
if(IdDivision != "vide")
{
/* On compte les clubs de cette division */
var nbc = tab[IdDivision][1].length;
var form_c = '<select name="club" id="club">';
for(var j = 0; j < nbc; j++)
{
form_c += ' <option value="'+ tab[IdDivision][1][j] +'">'+ tab[IdDivision][2][j] +'<\/option>';
}
form_c += '<\/select>';
}
else
{
form_c = "";
}
document.getElementById("blocClubs").innerHTML = form_c;
}
Code : Tout sélectionner
<form action="basket.php" method="post" name="chgclub" id="chgclub">
<fieldset style="border: 3px double #333399">
<legend>= Sélectionnez une division puis un club =</legend>
<br>
<select name="division" id="division" onChange="afficherBouton(this.value,'envoyer')";>
<option value="vide">- - - Choisissez une division - - -</option>
<?php
/* Construction de la première liste : on se sert du tableau PHP */
$nbd = count($divisions);
foreach($divisions as $nr => $nom)
{
?>
<option value="<?php echo($nr); ?>"><?php echo($nom[0]); ?></option>
<?php
}
?>
</select>
<!-- ICI, le secret : on met un bloc avec un id ou va s'insérer le code de
la seconde liste déroulante -->
<span id="blocClubs"></span><br />
<br>
<input type="submit" name="ok" id="envoyer" value="Envoyer" style="display: none">
</fieldset>
</form>
/**
* Fonction privée appelée depuis la fonction changeClub()
*
* @param {String} valeur Valeur de la liste d'où provient l'appel
* @param {String} btn identifiant du bouton à afficher
*/
function afficherBouton(valeur, btn)
{
var bouton = document.forms.chgclub.elements[btn];
if(valeur != -1)
{
bouton.style.display = 'inline';
}
else
{
bouton.style.display = 'none';
}
}
/**
* Fonction de mise à jour de la seconde liste.
*
* @param {Array} tab tableau des valeurs de division
* @param {String} IdDivision identifiant de la division
* @param {String} valeur Valeur de la liste d'où provient l'appel
* @param {String} btn identifiant du bouton à afficher
*/
function changeClub(tab,IdDivision, valeur, btn)
{
if(IdDivision != "vide")
{
/* On compte les clubs de cette division */
var nbc = tab[IdDivision][1].length;
var form_c = '<select name="club" id="club">';
for(var j = 0; j < nbc; j++)
{
form_c += ' <option value="'+ tab[IdDivision][1][j] +'">'+ tab[IdDivision][2][j] +'<\/option>';
}
form_c += '<\/select>';
/* Ici, on peut maintenant faire afficher le bouton */
afficherBouton(valeur, btn);
}
else
{
form_c = "";
}
document.getElementById("blocClubs").innerHTML = form_c;
}
Partant de là, remets l'appel de la fonction AJAX changeClub() et regarde l'ajout que j'ai fait dans cette fonction :/**
* Fonction de mise à jour de la seconde liste.
*
* @param {Array} tab tableau des valeurs de division
* @param {String} IdDivision identifiant de la division
* @param {String} valeur Valeur de la liste d'où provient l'appel
* @param {String} btn identifiant du bouton à afficher
*/
function changeClub(tab,IdDivision, valeur, btn)
{
var bouton = document.forms.chgclub.elements[btn];
if(IdDivision != "vide")
{
/* On compte les clubs de cette division */
var nbc = tab[IdDivision][1].length;
var form_c = '<select name="club" id="club">';
for(var j = 0; j < nbc; j++)
{
form_c += ' <option value="'+ tab[IdDivision][1][j] +'">'+ tab[IdDivision][2][j] +'<\/option>';
}
form_c += '<\/select>';
/* Ici, on peut maintenant faire afficher le bouton */
bouton.style.display = 'inline';
}
else
{
form_c = "";
bouton.style.display = 'none';
}
document.getElementById("blocClubs").innerHTML = form_c;
}
Simple non ? <select name="division" id="division" onChange="changeClub(tab,IdDivision,this.value,'envoyer')";>
On me dit que 'IdDivision' est indéfini ...