Bonjour à Toutes et Tous,

Les codes ci-dessous s'affichent correctement sur mon site, mais j'ai besoin de récupérer les valeurs d'un select (liste déroulante) après une requête MySQL par AJAX. Je m'explique avec les codes suivants :

Ceci est le script :
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
<script language="Javascript" type="text/JavaScript">
function makeRequest(url,id_niveau,id_ecrire){ 
	var http_request = false; 
        if (window.XMLHttpRequest) { 
            http_request = new XMLHttpRequest(); 
            if (http_request.overrideMimeType) { 
                http_request.overrideMimeType("text/xml"); 
            } 
        } else if (window.ActiveXObject) { 
            try { 
                http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
            } catch (e) { 
                try { 
                    http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
                } catch (e) {} 
            } 
        } 
 
        if (!http_request) { 
            alert("Abandon :( Impossible de créer une instance XMLHTTP"); 
            return false; 
        } 
 
        http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } 
 		http_request.open("POST", url, true); 
		http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
		obj=document.getElementById(id_niveau); 
		data="val_sel="+obj.value; 
		code_du_produit = document.getElementById("code_du_produit").value; 
		largeur_envoi = document.getElementById("largeur_envoi").value; 
		hauteur_envoi = document.getElementById("hauteur_envoi").value; 
		taux_tva = document.getElementById("taux_tva").value; 
		http_request.send(data + "&products_ls_id=" + products_ls_id + "&code_du_produit=" + code_du_produit + "&largeur_envoi=" + largeur_envoi + "&hauteur_envoi=" + hauteur_envoi + "&taux_tva=" + taux_tva);
 
} 
 
function traitementReponse(http_request,id_ecrire) { 
	var affich=""; 
	if (http_request.readyState == 4) { 
		if (http_request.status == 200) { 
 			var affich_list=http_request.responseText; 
				obj = document.getElementById(id_ecrire); 
                obj.innerHTML = affich_list; 
		} 
		else { 
                alert("Un probleme est survenu avec la requete."); 
        } 
    } 
} 
</script>
Puis l'appel au fichier externe :
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
<?php
        require('includes/application_top.php');
        
        $table = $_POST['val_sel'];
        $largeur_recue = sprintf("%d", $_POST['largeur_envoi']);
        $hauteur_recue = sprintf("%d",$_POST['hauteur_envoi']);
        $code_du_produit = sprintf("%d",$_POST['code_du_produit']);
        $taux_tva_recue = $_POST['taux_tva'];
        
        if($table=="Choisissez") {
                exit;
        }
        
        $recherche_moteur = tep_db_query("SELECT MAX(largeur) AS largeur_max, MIN(largeur) AS largeur_min, MAX(hauteur) AS hauteur_max, MIN(hauteur) AS hauteur_min FROM " . TABLE_AJAXPRODUIT . " WHERE products_id = '$code_du_produit' ORDER BY largeur");
 
        while($recherche_moteur_resultat = tep_db_fetch_array($recherche_moteur)) {
        
                if ($largeur_recue >= $recherche_moteur_resultat['largeur_min']) {
                        if ($largeur_recue <= $recherche_moteur_resultat['largeur_max']) {
                                if ($hauteur_recue >= $recherche_moteur_resultat['hauteur_min']) {
                                        if ($hauteur_recue <= $recherche_moteur_resultat['hauteur_max']) {
                                                $produit_moteur = tep_db_query("SELECT DISTINCT ap.largeur, ap.hauteur, ap.moteur, am.moteur_nm, am.moteur_prix, am.moteur_code, am.moteur_type 
                                                FROM " . TABLE_AJAXPRODUIT . " ap, 
                                                $table am 
                                                WHERE (ap.largeur >= '$largeur_recue') AND (ap.hauteur >= '$hauteur_recue') 
                                                AND ap.products_id = '$code_du_produit' 
                                                AND am.moteur_nm = ap.moteur 
                                                ORDER BY ap.largeur, ap.hauteur, am.moteur_code 
                                                LIMIT 3
                                                ");
                                                
                                                $aff = '<select>';
                                                while($resultat_moteur = tep_db_fetch_array($produit_moteur)) {
                                                
                                                        if ($resultat_moteur['moteur_prix'] != 0) {
                                                                $aff .= '<option size="30" name="' . $resultat_moteur['moteur_type'] . '" value="' . $resultat_moteur['moteur_type'] . '">' . $resultat_moteur['moteur_type'] . ' ( + ' . $resultat_moteur['moteur_prix'] . ' )</option>';
                                                        } else {
                                                                echo "Pas de moteurs disponibles !" . "\n";
                                                        }
                                                }
                                                $aff .= '</select>';
                                                echo $aff;
                                        } else {
                                                echo "Pas de moteurs disponibles !";
                                        }
                                } else {
                                        echo "Pas de moteurs disponibles !";
                                }
                        } else {
                                echo "Pas de moteurs disponibles !";
                        }
                } else {
                        echo "Pas de moteurs disponibles !";
                }
        }
        
        require(DIR_WS_INCLUDES . 'application_bottom.php');
?>
Et, pour terminer, l'affichage :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
$tmp_html .= '
                   <tr>
                   <td class="main" width="60%">' . $op_data['name'] . ' :' . ($op_data['instructions'] != '' ? '<br /><span class="smallText">' . $op_data['instructions'] . '</span>' : '' ) . '</td>
                   <td class="main" width="40%">
                   <div id="id_list1">
                    <input type="checkbox" value="products_moteur" name="niv1" id="id_niv1" onClick="makeRequest(\'ajaxmoteur.php\', \'id_niv1\', \'id_niv2\');">
                     <br><br>
                   </div>
                   <div id="id_niv2">
                   <!-- ici sera charge la reponse mode texte de PHP à la request AJAX -->
                   </div>
                   <input type="text" size="30" id="' . $code_produit_id . '" name="' . $code_produit_id . '" ' . $maxlength . ' /></td>
                   </tr>';
J'aimerais pouvoir récupérer les valeurs qui sont dans la balise <div id="id_niv2"> de mon affichage.

Ma requête SQL me sort les 3 valeurs que j'ai besoin et AJAX m'affiche correctement ces 3 valeurs sous forme de select-option. Ca, ça fonctionne.

Mais j'aurais besoin de récupérer le choix unique et de l'intégrer dans cet input sous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<input type="text" size="30" id="' . $code_produit_id . '" name="' . $code_produit_id . '" ' . $maxlength . ' />      ICI     </td>
Merci d'avance de vos lumières.