Bonjour ,
Sur le site internet que je développe actuellement, je travaille que une la partie administration , et plus particulièrement la GESTION DES ARTICLES (ou news).
J'ai 3 tables dans ma base Mysql.
- pages (id_page,titre,...)
- chapitres (id_chapitre, id_page,titre,...)
- paragraphes (id_paragraphe, id_chapitre, titre, texte,...)
Après plusieurs recherches, j'ai trouvé un tuto AJAX , afin de lier 2 listes déroulantes.
Ainsi, j'ai une liste déroulante (name="cat") qui affiche les titres des pages, puis une 2ème (name="sous_cat") qui affiche les chapitres de la page sélectionné dans la liste n°1.
Mais le souci c'est qu'il existe plusieurs paragraphes par chapitre, il est donc nécessaire d'avoir une 3ème liste déroulante également lié à la liste chapitre (name="sous_cat").
Je n'arrive pas à modifier mon code afin d'obtenir la liste des paragraphes (dans ma 3ème liste) rattachés à la page et principalement au chapitre sélectionné.
Voici les 2 pages de codes:
La page essai.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
108
109
110
111
112
113
114
115
116
117 <?php require_once('infos_connexion.php'); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> /** * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest */ function sendData(param, page) { if(document.all) { //Internet Explorer var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ; }//fin if else { //Mozilla var XhrObj = new XMLHttpRequest(); }//fin else //définition de l'endroit d'affichage: var content = document.getElementById("contenu"); XhrObj.open("POST", page); //Ok pour la page cible XhrObj.onreadystatechange = function() { if (XhrObj.readyState == 4 && XhrObj.status == 200) content.innerHTML = XhrObj.responseText ; } XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); XhrObj.send(param); }//fin fonction SendData </script> <?php include("./haut.php"); ?> </head> <body> <?php $i=0; // variable de test $j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage $connexion = mysql_connect($hostname_db,$username_db,$password_db) or die ("Connexion au serveur impossible"); mysql_select_db($database,$connexion); // Séléction de tous les enregistrements de la table Catégorie $rq="Select * from pages order by id_page;"; $result= mysql_query ($rq) or die ("Select impossible"); ?> <H3><strong><u><H3>Modifier un article</H3></u></strong></H3> <table width="500" border="0" cellpadding="5" cellspacing="0"> <tr> <td width="240"><div align="center"> <form name=nav method=post> <H4>Choix de la page</H4> <select size="1" name="cat" OnChange="sendData('id='+this.value,'liresc.php')" onKeyUp="sendData('id='+this.value,'liresc.php')"> <?php while ($dt=mysql_fetch_row($result)) { // Remplir la liste déroulante des catégorie echo "<option value=".($dt[0]).">".($dt[1])."</option>"; if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement } ?> </select><br><br> <div id="contenu"> <!-- affichage des sous-catégorie appartenant à la première catégorie.--> <H4>Choix du chapitre</H4><select size='1' name='souscat'> <?php $rq="Select * from chapitres where id_page=".$j." order by id_chapitre;"; $result= mysql_query ($rq) or die ("Select impossible"); // $i = initialise le variable i $i=0; while ($dt=mysql_fetch_row($result)) { echo "<option value=".$dt[0].">".$dt[3]."</option><br>"; } ?> </select> <H4>Choix du paragraphe</H4><select size='1' name='para'> <?php $rq="Select * from paragraphes where id_chapitre=".$j." order by id_paragraphe;"; $result= mysql_query ($rq) or die ("Select impossible"); // $i = initialise le variable i $i=0; while ($dt=mysql_fetch_row($result)) { echo "<option value=".$dt[0].">".$dt[3]."</option><br>"; } ?> </select> <p><input type='submit' name='Submit' value='Confirmer'></p> </div></div></td> </tr> </table> </table> </form> </body> </html>
La page liresc.php
Merci d'avance à ceux qui y jeteront un coup d'oeil!!!!
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 <?php require_once('infos_connexion.php'); ?> <?php header('Content-type: text') ; // on déclare ce qui va être afficher // test des POST emis if(isset($_POST['id']) && !empty($_POST['id']) ){ $connexion = mysql_connect($hostname_db,$username_db,$password_db) or die ("Connexion au serveur impossible"); mysql_select_db($database,$connexion); $rq="Select * from chapitres where id_page=".$_POST['id']." order by id_page;"; $result= mysql_query ($rq) or die ("Select impossible"); // $i = initialise le variable i $i=0; if (mysql_num_rows($result)>0) { echo "<H4>Choix du chapitre</H4><select size='1' name='souscat'>"; } else { echo utf8_encode("Pas de chapitre disponible"); } while ($dt=mysql_fetch_row($result)) { echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[3])."</option><br>"; } } ?> <?php header('Content-type: text') ; // on déclare ce qui va être afficher // test des POST emis if(isset($_POST['id']) && !empty($_POST['id']) ){ $connexion = mysql_connect($hostname_db,$username_db,$password_db) or die ("Connexion au serveur impossible"); mysql_select_db($database,$connexion); $rq="Select * from paragraphes where id_chapitre=".$_POST['id']." order by id_chapitre;"; $result= mysql_query ($rq) or die ("Select impossible"); // $i = initialise le variable i $i=0; if (mysql_num_rows($result)>0) { echo "<H4>Choix du paragraphe</H4><select size='1' name='para'>"; } else { echo utf8_encode("Pas de paragraphe disponible"); } while ($dt=mysql_fetch_row($result)) { echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[3])."</option><br>"; } } ?> </select><p><input type='submit' name='Submit' value='Confirmer'></p>
Partager