IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Sélection automatique dans une liste déroulante


Sujet :

AJAX

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut [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 : 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>";
    }
     
    ?>

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Points : 33
    Points
    33
    Par défaut
    C'est bon, j'ai trouvé la solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/01/2010, 15h18
  2. Réponses: 17
    Dernier message: 23/12/2009, 17h12
  3. Réponses: 2
    Dernier message: 22/09/2009, 17h56
  4. Réponses: 3
    Dernier message: 13/08/2009, 10h55
  5. [AJAX] Rafraîchissement automatique sur une liste déroulante
    Par frutix dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/04/2007, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo