Bonjour,

J'ai une liste déroulante dans laquelle j'ai de multiples disciplines. Pour chaque discipline j'ai une liste de grades.

J'aimerais qu'en fonction de la discipline sélectionnée, tous les grades concernant s'affiche.

Voici mes 3 fichiers

GestionGrade.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
 
<?php include "header.php"; ?>
 <div id="menuHaut">
  <div id='MH1'>
    <a href='formGrade.php'>Ajout de grade</a>
  </div></div> 
<?php  
  include 'menuGauche.php';
  echo "<h1>Liste des grades</h1>"; 
?>
 
<form action="gestionGradeModif.php" method="POST" name="gestGrade">
  <input type="hidden" name="disOuGrade" value="grade">
 
 <p style="position:relative;left:400px;"> Choix de la discipline :	
  <select name="disciplineNom2" onChange="changeGrade();">
    <option value=""></option>
    <?php
      $reqDis1="SELECT * FROM disciplines";
      $dis1=mysql_query($reqDis1) or die( mysql_error() );
      while($datadis = mysql_fetch_array($dis1))
      {
        echo"<option name='$datadis[discipline]' value='$datadis[discipline]'>$datadis[discipline]</option>";
      }
    ?>
  </select>
 </p>
 <div id="tableGrade">
 
 </div>
 
 
  <input type="submit" value="Supprimer" style="position:absolute;left:350px; top:390px;"></input>
 
  </form>
  <?php
  echo'<div id="divPaginationDiscipline">';
  
   for($i=1;$i<=$nombreDePages;$i++)
                {                 
                        if($i!=$pageActuelle)
                        {
                           echo "<a href='gestionGrade.php?idD= ".$id_disci." && page=".$i."'>".$i."</a>&nbsp;";       
                        }
                        else
                        {
                           echo $i."&nbsp;";       
                        }
                }
                echo"</div>";
  ?>
<?php include ("footer.php"); ?>
gestionGradeModif.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
 
<?php 
 echo '<div name="tableGrade" >'; 
 
  $idDiscipline = $_POST['idDiscipline'];
 
   echo "    <table border='1' id='tableModifGrade'>
            <tr>
              <th>Grade</th>
              <th>Supprimer</th>
            </tr> ";
 <?php           
if(isset( $idDiscipline )){
    $db="samourai_gestion";
    $sql = mysql_connect("localhost","****","*******") or die ('Erreur : '.mysql_error()); 
    mysql_select_db($db);
 
    $gradeParPages = 7;
 
    $select = "SELECT count(*) FROM grades WHERE idDiscipline='".$id_disci."'";
    $result = mysql_query($select) or die (mysql_error() );
    $row = mysql_fetch_array($result);
    $total = $row[0];
 
     	//Nous allons maintenant compter le nombre de pages.
  		$nombreDePages=ceil($total/$gradeParPages);
 
 
  		if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
  		{
  			$pageActuelle = intval($_GET['page']);
 
 
  			if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
  			{
  				$pageActuelle=$nombreDePages;
  			}
  		}
  		else // Sinon
  		{
  			$pageActuelle=1; /* La page actuelle est la n°1*/    
  		}
      $premiereEntree =($pageActuelle-1)* $gradeParPages;
 
      $requete = "SELECT * FROM grades WHERE idDiscipline ='".$id_disci."' ORDER BY nom_grade ASC LIMIT ".$premiereEntree.",".$gradeParPages."";
  	  $resultat =  mysql_query($requete);
 
 
      while ($data = mysql_fetch_assoc($resultat))
    {
      echo '<tr><td>'.$data['nom_grade'].'</td>';
      echo '<td><input type="checkbox" id="Del_Grade"></td></tr> ';   
    }
 
 
 echo " </table><br /><br />
 
</div>  "; 
  ?>
et ajaxGrade.js:

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
 
 
 
function getXhr()
{
  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;
}
 
function changeGrade()
{
 
    var xhr = getXhr();
 
		xhr.onreadystatechange = function()  
    {     
 
		  if(xhr.readyState == 4 && xhr.status == 200)   // ne fonctionne plus à partir d'ici
      {
         alert('hello !');       
         var leselect = xhr.responseText;
						document.getElementById('tableGrade').innerHTML = leselect;
					}	
				}
				xhr.open("POST","gestionGradeModif.php",true);
				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				sel = document.gestGrade.getElementById('disciplineNom2');
				iddisciplineModif = sel.options[sel.selectedIndex].value;
				xhr.send("idDiscipline="+iddisciplineModif);
    }
Voilà, je vous remercie d'avance pour les lumières avec, j'espère, pouvoir éclairer ma lanterne =D