Bonjour à tous,

Je sollicite votre aide. j'ai récupérer un script AJAX pour faire des listes liées dynamiquement.
Malheureusement je n'ai absolument pas le niveau en AJAX pour faire ce que je veux, d'où ce sujet.

J'aimerai générer une requête à partir des listes liées et afficher les résultats dans un table. Le tout dynamiquement si possible...

Maintenant place au code:
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
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 click du bouton
*/
function go(){
	var xhr = getXhr();
	// On défini 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 a la liste
			document.getElementById('promotionDiv').innerHTML = leselect;
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","../../wp-content/themes/responsive-childtheme-master/promotion.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 l'auteur
	sel = document.getElementById('diplomeSelect');
	iddiplome = sel.options[sel.selectedIndex].value;
	xhr.send("idDiplome="+iddiplome);
}
function go2(){
	var xhr = getXhr();
	// On défini 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 a la liste
			document.getElementById('statutDiv').innerHTML = leselect;
			console.log(leselect);
		}
	}
	// Ici on va voir comment faire du post
	xhr.open("POST","../../wp-content/themes/responsive-childtheme-master/statut.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 l'auteur
	sel = document.getElementById('promotionSelect');
	idpromotion = sel.options[sel.selectedIndex].value;
	xhr.send("idPromotion="+idpromotion);
}
Code php : 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
<body>
<?php 
if (!isset($_POST["idDiplome"])){
	$sql = 'SELECT * FROM sokatira_Utilisateurs';
}
else {
	if (isset($_POST["idDiplome"])){
		$sql = 'SELECT * FROM sokatira_Utilisateurs
			WHERE diplome="'.$_POST["idDiplome"].'"';				
	}
	/*else {
		if (isset($_POST["idPromotion"])){
			$sql = 'SELECT * FROM sokatira_Utilisateurs
			WHERE diplome="'.$_POST["idDiplome"].'" AND promotion="'.$_POST["idPromotion"]'"';
		}
	}*/
}
echo $sql;
$requeteGenerale = $bdd->query($sql);	 
?>
<form action='' name='triRequete' id='tri' method='post'>
	<fieldset style="border:1px solid grey; padding: 10px;">
		<legend>Listes liées</legend>
		<label>Dernier diplôme obtenu</label>
		<select name='diplome' id='diplomeSelect' onchange='go()'>
			<option value='0'>-- Choisir un diplôme --</option>
<?php
$res = mysql_query("SELECT DISTINCT diplome FROM sokatira_Utilisateurs ORDER BY diplome");
while($row = mysql_fetch_assoc($res)){
	echo "<option value='".$row["diplome"]."'>".$row["diplome"]."</option>";
}
?>
		</select>
		<label>Promotion</label>
		<div id='promotionDiv' onchange='go2()' style='display:inline'>
		<select name='promotion' id='promotionSelect'>
			<option value='0'>-- Choisir une promotion --</option>
		</select>
		</div>
		<label>Statut</label>
		<div id='statutDiv' style='display:inline'>
		<select name='statut' id='statutSelect'>
			<option value='0'>-- Choisir un statut --</option>
		</select>
		</div>
	</fieldset>
</form>
<form name="selectEmail" id="contact" method="post" enctype="text/plain" action="">
	<input type="button" value="Tout cocher" onclick="cocheCase();">
	<input type="button" value="Tout décocher" onclick="decocheCase();">
	<div id="divCheckbox">
		<table id="tableauResultats">
			<tr>
				<td></td>
				<td><a href="#" title="Adresses email">Adresses email</a></td>
				<td><a href="#" title="Nom">Nom</a></td>
				<td><a href="#" title="Prenom">Prénom</a></td>
				<td><a href="#" title="Dernier diplome">Dernier diplôme obtenu</a></td>
				<td><a href="#" title="Promotion">Promotion</a></td>
				<td><a href="#" title="Statut">Statut</a></td>
			</tr>
<?php 
$compteur = 1;
while ($ligne = $requeteGenerale->fetch()):
{
	echo '<tr>';
	echo '<td id="checkboxCase"><input type="checkbox" name="checkbox" id="checkbox'.$compteur.'" value="'.$ligne['user_email'].'" ></td>';
	echo '<td><label for="checkbox'.$compteur.'" >'.$ligne['user_email'].'</label></td>';
	echo '<td><label>'.$ligne['nom'].'</label></td>'; 
	echo '<td><label>'.$ligne['prenom'].'</label></td>';
	echo '<td><label>'.$ligne['diplome'].'</label></td>';
	echo '<td><label>'.$ligne['promotion'].'</label></td>';
	echo '<td><label>'.$ligne['statut'].'</label></td>';
	$compteur++;
	echo '</tr>';
}
endwhile; 
?>
	</table>
	</div>
	<input type="button" name="envoieEmail" value="Envoyer à ces adresses" onclick="envoieCourriel();">	
</body>
</html>

promotion.php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
echo "<select name='promotion' id='promotionSelect' onchange='go2()'>";
if(isset($_POST["idDiplome"])){
	mysql_connect($host,$login,$motdepasse);
	mysql_select_db($nomBase);
	$res = mysql_query("SELECT DISTINCT promotion FROM sokatira_Utilisateurs
		WHERE diplome='".$_POST['idDiplome']."' ORDER BY diplome DESC");
	echo "<option value='0'>-- Choisir une promotion --</option>";
	while($rowPromo = mysql_fetch_assoc($res)){
		echo "<option value='".$rowPromo['promotion']."'>".$rowPromo['promotion']."</option>";
	}
}
echo "</select>";
?>

statut.php
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
echo "<select name='statut' id='statutSelect'>";
if(isset($_POST["idPromotion"])){
	$bdd = mysql_connect($host,$login,$motdepasse);
	mysql_select_db($nomBase);
	mysql_set_charset("utf8", $bdd);
	$resStatut = mysql_query("SELECT DISTINCT statut FROM sokatira_Utilisateurs
		WHERE promotion='".$_POST["idPromotion"]."' ORDER BY promotion");
	echo "<option value='0'>-- Choisir un statut --</option>";
	while($rowStatut = mysql_fetch_assoc($resStatut)){
		echo "<option value='".$rowStatut["statut"]."'>".$rowStatut["statut"]."</option>";
	}
}
echo "</select>";
?>

En espérant avoir été clair,
Merci pour votre aide.