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))

Nom : Import_prob.jpg
Affichages : 76
Taille : 122,5 Ko

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 :

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);
}
Cette méthode appelle une liste déroulante des precedentes sessions :

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 :

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);
}
Traitement_import :

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.