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.
Partager