Bonjour,

Je rencontre un nouveau problème suite aux soucis que j'ai eu pour récupérer dynamiquement le contenu de champs <input> dans un formulaire.

Tout fonctionne bien pour les <input>, mais je n'arrive pas à sélectionner (selected = 'selected') automatiquement une ligne d'une liste déroulante.

Voici le code de ma page "insertion_contact.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
<tr>
	<td>Nom</td>
	<td style="background: #b1b294; color: #333;">
		<input type="text" name="nom" id="nom" tabindex="40" size="10" onfocus="this.className='focus';" onblur="goPrenom(),goNegociateur()" />
			<div id="auto_noms"></div>
				<script type="text/javascript">
					new Ajax.Autocompleter (
						'nom',
						'auto_noms',
						'autocompleter_noms.php',
						{method: 'post', paramName: 'nom'}
					);
				</script>
	</td>
</tr>
 
<tr>
	<td>Prénom</td>
	<td style="background: #b1b294; color: #333;">
		<input type="text" name="prenom" id="prenom" tabindex="50" size="0" onfocus="this.className='focus';" onblur="this.className='normal';" />
			<script type="text/javascript">
				function goPrenom(){
					new Ajax.Request('autocompleter_auto.php?champ=prenom', {
						method: 'post',
						parameters: "nom_contact=" + document.getElementById("nom").value,
						onSuccess: function(transport) {
							document.getElementById("prenom").value=transport.responseText;
						} // onSuccess
					} // options
					); // Ajax.Request
				} // function goPrenom
			</script>
	</td>
</tr>
 
<tr>
	<td>* Négociateur</td>
	<td style="background: #b1b294; color: #333;">
		<div id="negociateur">
			<select name="negociateur" tabindex="130">
			<script type="text/javascript">
				function goNegociateur(){
					new Ajax.Request('autocompleter_auto.php?champ=negociateur', {
						method: 'post',
						parameters: "nom_contact=" + document.getElementById("nom").value,
						onSuccess: function(transport) {
							document.getElementById("negociateur").value=transport.responseText;
						} // onSuccess
					} // options
					); // Ajax.Request
				} // function goNegociateur
			</script>
			<?php
                                $result = mysql_query("SELECT id_negociateur, prenom_negociateur, nom_negociateur FROM t_gestion_contacts_negociateurs ORDER BY id_negociateur");
                                echo '<option value="">Choix</option>';
                                while ($data =  mysql_fetch_array($result)) {
                                        echo '<option value="'.$data[0].'">'.$data[1]." ".$data[2];
                                        echo '</option>'."\n";
                                }
                        ?>
			</select>
		</div>
	</td>
</tr>
Et ma page "autocompleter_auto.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
<?php
 
include ('../fonction_connexion.php');
 
$nom_recupere = $_POST["nom_contact"];
 
$requete = mysql_query("SELECT * FROM t_gestion_contacts WHERE t_gestion_contacts.nom_contact = '$nom_recupere'");
 
$requete_nego_complete = mysql_query("SELECT id_negociateur, prenom_negociateur, nom_negociateur FROM t_gestion_contacts_negociateurs ORDER BY id_negociateur" );
 
$requete_nego_selectionne = mysql_query("SELECT * FROM t_gestion_contacts, t_gestion_contacts_negociateurs WHERE t_gestion_contacts.idx_negociateur = t_gestion_contacts_negociateurs.id_negociateur AND t_gestion_contacts.nom_contact = '$nom_recupere'" );
 
if ($_GET["champ"] == 'prenom') {
 
	if (isset($nom_recupere)) {
		while($row = mysql_fetch_assoc($requete)) {
			echo $row['prenom_contact'];
			break; //peut pas avoir plusieurs prénoms sinon 1 N aberrant		
		}
	}
}
 
 
elseif ($_GET["champ"] == 'negociateur') {
 
	echo "<select name='negociateur'>";
		if (isset($nom_recupere)){
			echo '<option value="">Choix</option>';
			while ($row = mysql_fetch_assoc($requete_nego_selectionne)) {
				/*echo '<option value="'.$row['id_negociateur'].'">'.$row['id_negociateur']." ".$row['id_negociateur'];
				echo '</option>'."\n";*/
				while ($data =  mysql_fetch_array($requete_nego_complete)) {
					if ($data[0] == $row['idx_negociateur']) {
						$selected = "selected = 'selected'";
					}
					else {
						//$selected = "";
					}
					echo '<option value="'.$data[0].'" "'.$selected.'">'.$data[1]." ".$data[2];
					echo '</option>'."\n";
				}
			}
		}
 
		else {
			echo '<option value="">Choix</option>';
			while ($data =  mysql_fetch_array($requete_nego_complete)) {
				echo '<option value="'.$data[0].'">'.$data[1]." ".$data[2];
				echo '</option>'."\n";
			}
		}
	echo "</select>";
}
 
?>