Bonjour,

Il y a quelque temps, et grâce à l'aide d'un membre de ce forum réussi a mettre en place et a comprendre un système de double liste déroulante dynamique, la seconde étant dépendante de la première.

J'ai repris ce code et je souhaite l'adapter pour rendre dynamique le textarea de mon formulaire.
Malheureusement, je ne suis pas vraiment spécialisé javascript et mon ancien script commence a dater. Je dois admettre que j’ai un peu de mal. Je sens que je touche au but mais je n’arrive pas a l’atteindre.

Pour faire simple : j'ai un menu déroulant rempli a partir d'une table "produits" de ma DB de forme
<option value='id du produit'>Catégorie - Titre du produit </option>
Je souhaite preformater mon textarea avec la description du produit correspondante au choix fait précédemment dans mon menu déroulant.

J'espère avoir été assez clair.

Voici mes sources. Si quelqu'un pouvait me mettre sur la voix ce serait sympa

Afin d'éviter de devoir vous donner un gros paquet de code, sachez que mes includes sont bons et que ma liste déroulante se remplie bien.


index.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
 
 
function getXhrTrap(){
	if(window.XMLHttpRequest) // Firefox et autres
	   var xhrT = new XMLHttpRequest();
	else if(window.ActiveXObject){ // Internet Explorer
	   try {
                var xhrT = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                var xhrT = new ActiveXObject("Microsoft.XMLHTTP");
            }
	}
	else { 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	   var xhrT = false;
	}
	return xhrT;
}
 
 
 
 
function getDesc() {
 
var Id_produit = document.getElementById('id_produit').value;
var arg = 'Id_produit='+Id_produit;
 
 
	var xhrT = getXhrTrap();
 
	xhrT.open("POST","ajaxProduits.php",true);
	xhrT.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhrT.send(arg);
 
	xhrT.onreadystatechange = function()
	{	
		if(xhrT && xhrT.readyState == 4 && xhrT.status == 200 && xhrT.responseXML)
		{
			reponseT = xhrT.responseXML.documentElement;
			var description = reponseT.getElementsByTagName("description");
			var str = "";
var rechCount = description.length;
for(i = 0; i < rechCount; i++)	{
	str += " - " + description[i].value;
}
 
var selbox = document.getElementById("description");
 
							selbox.value = str; 
 
 
		}
	}
	}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
$produits_list = "<select class='texte_select' name = 'id_produit' tabindex='3' id= 'id_produit' onchange='getDesc(this.form.id_produit.value);'"; 
 
while ( $row = mysql_fetch_array( $result_produits)) {
    $Produit_Id = $row["Ref"];
    $Produit_categorie = $row["Categorie"];
	$Produit_titre = $row["Titre"];
	$Produit_desc = $row["Description"];
    $produits_list .= "<OPTION value='$Produit_titre'>$Produit_categorie - $Produit_titre</OPTION>";
 
}
$produits_list .= "</SELECT>";
 
 
 
<form method="post" action="index.php?action=add" name="form"> 
<input type="submit" value="Enregistrer" id="submit" name="submit"  />
<br/>
 
Titre :<?php echo $produits_list ?>
Descriptions : 
<textarea id="description" name="description" rows="10" cols="72" >
</textarea>
</br>
</form>
ajaxProduits.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
<?php
 
if (isset($_POST["Id_produit"])) {
 
$buffer = '<div id="desc">';    
$buffer .= '<?xml version="1.0"?>';
 
mysql_connect("localhost","xxxxxxxxx","xxxxxxxxxxx");
mysql_select_db("xxxxxxxxxxxxxx");
$res = mysql_query("SELECT * FROM Produits WHERE Ref = '".$_POST['Id_produit']."' ");
while($row = mysql_fetch_assoc($res)){
$buffer .='<Description id="desc2"><description>'.$row['Description'].'</description></Description>';
}
$buffer .='</div>';
header('Content-Type: text/xml');
        print $buffer;
}
        ?>


J'ai essayer pas mal de chose jusqu'à présent, mais soit il n'y a pas eu de changement soit j'avais un retour vide, soit un ""undefined"" soit un "[object HTMLCollection]"

Merci pour votre temps!

Bonne journée