Bonjour

J'ai créer 2 listes déroulantes par l'intermédiaire d'Ajax. Comme je ne suis pas un pro j'ai pris des bouts de code sur le net j'ai adapté à mon cas

Donc j'ai une liste saison. Quand on choisit une saison une liste de Matchs se remplit donc en fonction de la saison. Et après je choisis le match pour savoir qui a assisté à ce match.

Et donc dans une autre page je voudrais récupérer l'id de la saison et l'id du match pour traitement

J'ai donc une page test.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<script type='text/javascript'>
 
            function getXhr(){
                                var xhr = null; 
                if(window.XMLHttpRequest) // Firefox et autres
                   xhr = new XMLHttpRequest(); 
                else if(window.ActiveXObject){ // Internet Explorer 
                   try {
                            xhr = new ActiveXObject("Msxml2.XMLHTTP");
                        } catch (e) {
                            xhr = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                }
                else { // XMLHttpRequest non supporté par le navigateur 
                   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
                   xhr = false; 
                } 
                                return xhr;
            }
 
            /**
            * Méthode qui sera appelée sur le changement de la liste saisons
            */
            function go(){
                var xhr = getXhr();
                // On définit ce qu'on va faire quand on aura la réponse
                xhr.onreadystatechange = function(){
                    // On ne fait quelque chose que si on a tout reçu et que le serveur est OK
                    if(xhr.readyState == 4 && xhr.status == 200){
                        leselect = xhr.responseText;
                        // On se sert de innerHTML pour rajouter les options à la liste
                        document.getElementById('Match').innerHTML = leselect;
                    }
                }
 
                // Ici on va voir comment faire du post
                xhr.open("POST","match.php",true);
                // ne pas oublier ça pour le post
                xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                // ne pas oublier de poster les arguments
                // ici, l'id de la saison
                sel = document.getElementById('lst_saisons');
                saisonId = sel.options[sel.selectedIndex].value;
                xhr.send("saisonId="+saisonId);
            }
        </script>
 
</head>
<?php  
connexion à la base
?>
 
<body>
 
	<p>
<table class="tb-admin">
	<tr>
		<td class="td-admin" align="center" colspan="3"><b><font color="#cc0000">En phase de test</font></b></td>
	</tr>
 
	<tr>
		<form name="reservationsaison" method="post" action="liste_reservations_saisons.php">
		<td class="td-admin" align="center">
			<label>Saisons</label>
			<?php
                        $sql = "SELECT COUNT(saisonId) as tSaison 
                                        FROM ot_saisons ";
                        $req=$db->prepare($sql);
                        $req->execute();
                        $r=$req->fetch();
                        $tSaison=$r['tSaison'];
                        
                        $sql1 = "SELECT saisonId, saisonLibelle 
                                        FROM ot_saisons 
                                        WHERE saisonId < '$tSaison' 
                                        ORDER BY saisonId DESC";
                        $req1 = $db->prepare($sql1);
                        $req1->execute();
                        ?>
		<select required="true" name="lst_saisons" id="lst_saisons" onchange='go()'>
        <option value='0'>-- Choisir la saison --</option> 
			<?php
                        while($r1 = $req1->fetch()){ 
                                
                ?>
        <option value="<?php echo $r1['saisonId']; ?>"> <?php echo $r1['saisonLibelle'] ?></option>\n;
        <?php
        }
                ?>
 
		</select>
		</td>
		<td>
			<label>Matchs</label>
                <div id='Match' style='display:inline'>
                <select name='Match'>
                    <option value='-1'></option>
 
                </select>
                </div>
			</td>
			<td>
			<input class="input-admin" type="submit" name="Enregistrer" id="Enregistrer" value="R&eacute;servations Par Saison" />
			</td>
			</form>
		</tr>
</table
Et j'ai donc fait une page pour faire remonter les matchs par rapport à la saison
Voici ma page match.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
connexion à la base
 
echo "<select name='Match'>";
 
	if(isset($_POST["saisonId"])){
		$sql = "SELECT * FROM ot_matchs 
			WHERE matchSaisonId = ".$_POST["saisonId"]." 
			ORDER BY matchDate ASC";
			$req = $db->prepare($sql);
			$req->bindValue(':matchSaisonId', $_POST["saisonId"],PDO::PARAM_INT);
			$req->execute();
 
		while($r = $req->fetch()){ 
/* pour convertir la date yyyy-mm-dd en dd/mm/yyyy */
 
			$matchId=$r['matchId'];
 
			$date = $r['matchDate'];
			$matchCompetitionId = $r['matchCompetitionId'];
 
			$sql1 = "SELECT competitionId,competitionLibelleLong FROM ot_competitions WHERE competitionId = '$matchCompetitionId'";
			$req1 = $db->prepare($sql1);
			$req1->bindValue(':competitionId', $matchCompetitionId,PDO::PARAM_INT);
			$req1->execute();
			$r1 = $req1->fetch();
			$NomCompetition = $r1['competitionLibelleLong'];
 
			$tabDate = explode('-' , $date);
			$date_conv  = $tabDate[2].'/'.$tabDate[1].'/'.$tabDate[0];
 
			 echo "<option value='".$r["matchId"]."'>".$r["matchLibelle"]." $NomCompetition $date_conv</option>";
		}
 
	}
 
echo "</select>";
Mais là je bloque pour passer mes 2 id (saison et match) à ma page de traitement
J'y suis depuis 2 jour et je n'ai plus de cheveux : je pense que c'est dans ma fonction go (passage des arguments) que je m***e (enfin ce n'est l'avis que d'un newbizz

Si quelqu'un a une idée ou une piste je suis preneur

Cordialement