[AJAX] Sélection automatique dans une liste déroulante
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:
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:
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>";
}
?> |