1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| <form action="match.php" method="post">
<select name="saison" onchange="setMenuPop(this.value)">
</select>
<select name="compete" id="popcompet" >
</select>
<input type="submit" name="submit" value="Afficher">
</form>
<form action="match.php" method="post">
.liste
.
<!-- dans le cas d'une liste modifiable (comme j'ai fait) il faut des "hidden" pour donner les paramètres nécessaires au formulaire -->
<input type="hidden" name="action" value="update">
<input type="hidden" name="compet" value="$compet">
<input type="hidden" name="saison" value="$saison">
<!-- si le hidden "action" est vide (comme pour le 1er formulaire) il n'affichera que la liste sans enregistrer les modifications éventuelles -->
</form>
<script type="text/javascript">
// la méthode suivante permet de modifier le menu compétitions sans avoir besoin d'ajax
// chaque menu est construit en "cache" en code javascript (j'ai volontairement aéré la structure du 1er pour plus de lisibilité)
// on récupère les tables mysql que l'on utilise pour créer le code javascript à l'aide de php
var js_teams_2010 = new Array("2010", new Array(
new Array("Seniors Equ 1",
new Array("Division 3 A","176"),
new Array("Matchs amicaux","173")
)
),
new Array("Seniors Equ 2",
new Array("Division 2 B","177"),
new Array("Matchs amicaux","186")
)
)
);
var js_teams_2009 = new Array("2009", new Array(new Array("Seniors Equ 1", new Array("Division 3 A","152"), new Array("Matchs amicaux","154")),new Array("Seniors Equ 2", new Array("Division 2 B","153"), new Array("Matchs amicaux","161"))));
// on créé une seule variable qui va conserver toutes les données des saisons avec autant d'éléments que de saisons
var js_teams = new Array(js_teams_2010,js_teams_2009);
<script>
<!-- la fonction javascript qui gère le menu compétitions -->
<script type="text/javascript">
function setMenuPop(year) {
var popcompet = document.getElementById('popcompet');
var curvalue = popcompet.value;
popcompet.options.length=0;
popcompet.innerHTML = "";
for (var j=0; j<js_teams.length;j++) {
if (js_teams[j][0] == year) {
var tm = js_teams[j][1];
for (var k=0; k<tm.length;k++) {
var cp = tm[k];
oOptgroup = document.createElement('OPTGROUP');
oOptgroup.label = cp[0];
for (var i=1; i<cp.length;i++) {
oOption = document.createElement('OPTION');
oOptgroup.appendChild(oOption);
oOption.text = cp[i][0];
oOption.value = cp[i][1];
}
popcompet.appendChild(oOptgroup);
}
}
}
}
<script> |
Partager