<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="changeClub(tab,this.value);">
<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="ok" value="Envoyer">
</fieldset>
</form>
Pour le script javascript :Code : Tout sélectionner
/* On crée la fonction qui va construire la seconde liste déroulante */
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
function afficherBouton(valeur, btn)
{
var bouton = document.forms.idDuFormulaire.elements.btn;
if(valeur != -1)
{
bouton.style.display = 'inline';
}
else
{
bouton.style.display = 'none';
}
}En fait, ce qui m'intéresserait, c'est de placer cet évènement onchange sur ma première liste déroulante.Ce n'est pas très compliqué en fin de compte :
-1- ton bouton d'envoi doit comporter un attribut «style="display: none"» et un attribut id pour pouvoir pointer dessus du genre «id="envoyer"»
-2- la dernière liste doit avoir un gestionnaire d'évènement »"onchange="afficherBouton(this.value, 'idDuBouton')"»
-3- Tu dois créer une fonction JavaScript afficherBouton() qui ressemblera à quelque chose dans ce genre :
Tu peux remplacer "inline" par "block" au besoin, ça dépend de la mise en page de ton formulaire. Mais par défaut, une balise <input> est de type inline.Code : Tout sélectionner
function afficherBouton(valeur, btn) { var bouton = document.forms.idDuFormulaire.elements.btn; if(valeur != -1) { bouton.style.display = 'inline'; } else { bouton.style.display = 'none'; } }
Quelle erreur au juste ?? Si tu ne le précises pas, personne ne le devinera.... Parceque tel quel, j'ai une erreur.
Code : Tout sélectionner
var bouton = document.forms.idDuFormulaire.elements.btn;Code : Tout sélectionner
var bouton = document.forms.idDuFormulaire.elements[btn];Code : Tout sélectionner
<select name="division" id="division" onChange="afficherBouton(this.value,'envoyer')";><SCRIPT LANGUAGE="JavaScript">
/* On crée une fonction de verification */
function afficherBouton(valeur, btn)
{
var bouton = document.forms.chgClub.elements.[btn];
if(valeur != -1)
{
bouton.style.display = 'inline';
}
else
{
bouton.style.display = 'none';
}
}
</SCRIPT>
Voilà où je coince ! Et encore, c'est sans parler de l'autre fonction qui était avant sur le OnChange de cette même liste, que je voudrais toujours pouvoir exécuter.il s'agit de la ligne correspondant à la liste déroulante en question :À quoi correspond la ligne 169 ??
Code : Tout sélectionner
<select name="division" id="division" onChange="afficherBouton(this.value,'envoyer')";>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>