Bonjour, je suis face à un problème d'utilisation et d'affichage de données de base de données...
Je cherche à afficher les informations recueillis dans les balises textareas nommés champ 1, 2, 3 et 4 sur la photo ( les infos sont juste en dessous du bouton import session .. , les infos sont dans une balise div ( fonction ajax))
Formulaire :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <form id="form_ajout_session" action="traitement/traitement_session.php" method="POST" onsubmit="return valider()"> <fieldset id="leftpop"><legend>Début de formation</legend> <input type="hidden" name="stagiaire" value="<?php echo $id_stagiaire ?>" /></label><br> <label class="libelle">Stagiaire :<input type="text" value="<?php echo $prenom . " " . $nom; ?>" disabled /></label><br> <label id="choix_langue">Langue :</label> <select name="langue_list" id="langue_select"> <?php include("chargement/chargement_langue.php"); ?> </select><br /><br /> <input type="button" id="import_sess_prec" value="Importer infos session précédente" onclick="import_session(<?php echo $id_stagiaire ?>);"/> <div id="list_import_session"></div> <label class="libelle">Auto Evaluation :<textarea rows="5" cols="50" name="auto_evaluation" id="auto_evaluation"></textarea></label><br> <label class="libelle">Utilisation des langues :<textarea rows="5" cols="50" name="utilisation_langue" id="utilisation_langue"></textarea></label><br> <label class="libelle">Objectifs :<textarea rows="5" cols="50" name="objectif" id="objectif"></textarea></label><br> <label class="libelle">Disponibilités :<textarea rows="5" cols="50" name="disponibilite" id="disponibilite"></textarea></label><br>
Methode onclick appelle fonction AJAX :
Cette méthode appelle une liste déroulante des precedentes sessions :
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 function import_session(id_stagiaire){ var data = 'affiche_sessions='+true+'&id='+id_stagiaire; var XMLhttp=new XMLHttpRequest(); XMLhttp.open("POST","chargement/chargement_session.php",false); XMLhttp.onreadystatechange=function() { if (XMLhttp.readyState==4 && XMLhttp.status==200) { document.getElementById("list_import_session").innerHTML=XMLhttp.responseText; } } XMLhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); XMLhttp.send(data); }
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 <?php try { if(isset($_POST['affiche_sessions']) && isset($_POST['id']) && !empty($_POST['id'])) { $id_stagiaire=$_POST['id']; } // Connect and create the PDO object $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb); $conn->exec("SET CHARACTER SET utf8"); // Sets encoding UTF-8 // Define and prepare an INSERT statement $sql="SELECT s.sess_id, l.lg_designation, s.sess_date_demarrage, s.sess_date_fin, s.sess_gescof FROM sess s, langue l WHERE s.sess_stg = '".$id_stagiaire."' AND s.sess_langue=l.lg_id"; ?> <label id="choix_session">Choissisez la session à importer :</label> <select name="session_list" id="session_select" onchange="import_sess(this.value)"> <option value="0">Langue || Date démarrage || Date fin || N° gescof</option> <?php $result = $conn->query($sql); while($sess = $result->fetch(PDO::FETCH_ASSOC)) { ?> <option value="<?php echo $sess['sess_id'] ?>"><?php echo $sess['lg_designation']." ".$sess['sess_date_demarrage']." ".$sess['sess_date_fin']." ".$sess['sess_gescof'] ; ?></option> <?php } ?> </select><br /><br /> <?php $conn = null; // Disconnect } catch(PDOException $e) { echo $e->getMessage(); } ?>
Puis au onchange de cette liste, une autre fonction AJAX est appelé afin de selectionne les infos de la base de données afficher dans l'image jointe :
Traitement_import :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function import_sess(str) { var data = 'traitement_sess='+true+'&id_sess='+str; var XMLhttp = new XMLHttpRequest(); XMLhttp.open("POST","traitement/traitement_import.php",false); XMLhttp.onreadystatechange=function(){ if (XMLhttp.readyState==4 && XMLhttp.status==200){ document.getElementById("list_import_session").innerHTML=XMLhttp.responseText; } } XMLhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); XMLhttp.send(data); }
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 try { if(isset($_POST['traitement_sess']) && isset($_POST['id_sess']) && !empty($_POST['id_sess'])) { $id_sess=$_POST['id_sess']; } // Connect and create the PDO object $conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb); $conn->exec("SET CHARACTER SET utf8"); // Sets encoding UTF-8 // Define and prepare an INSERT statement $sql="SELECT sess_auto_eval, sess_utilisation_langue, sess_objectif, sess_dispo FROM sess WHERE sess_id = '".$id_sess."'"; $result = $conn->query($sql); while($row = $result->fetch(PDO::FETCH_ASSOC)) { $auto_eval=$row['sess_auto_eval']; $utilisation_langue=$row['sess_utilisation_langue']; $objectif=$row['sess_objectif']; $dispo=$row['sess_dispo']; } echo 'champ 1 :'.$auto_eval. '</br> champ 2 :'.$utilisation_langue.'</br> champ 3 :'.$objectif.'</br> champ 4 :'.$dispo; $conn = null; // Disconnect } catch(PDOException $e) { echo $e->getMessage(); } ?>
J'aimerais pouvoir afficher les différents champ dans les textareas, cependant je n'ai aucune idée d'atteindre mon objectif, faut-il utiliser les fonctions AJAX et les modifier, recréer une nouvelle fonction ?
J'espere que vous avez compris mon petit problème et que vous pourrez m'aider.
Cordialement,
Florian.
Partager