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

JavaScript Discussion :

[AJAX] récupérer la valeur d'une liste déroulante générée en AJAX


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut [AJAX] récupérer la valeur d'une liste déroulante générée en AJAX
    Bonjour à tous,

    Je rencontre actuellement un problème avec l'un de mes formulaire.
    J'ai donc une première liste déroulante qui propose les différentes gammes de produits.
    J'ai une deuxième liste déroulante qui est alimenté en fonction du choix choix de la gamme.
    Jusque là tout ce passe bien.

    Mais quand je valide le formulaire qui est en method="get", je ne parvient pas à récupérer la valeur de cette deuxième liste déroulante.
    D'ailleurs elle ne passe pas du tout dans l'URL.

    Le problème se pose sur tous les navigateurs, sauf IE

    Merci à tous d'avance pour votre aide

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Il existe déjà de nombreux sujets traitant de se problème.
    En général, c'est que la création de ta liste déroulante est mal faite.
    Mais sans code, difficile de t'en dire plus... Enfin, la fonction RECHERCHE du forum devrait te mettre sur la voie.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut
    Merci pour ta réponse Bovino,

    En cherchant un peu sur le forum, je n'ai pas vraiment trouver mon bonheur.

    Par contre, comme tu la dis c'est peut être ma liste déroulante qui est mal faite.
    Voici ma fonction AJAX:

    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
    function get_Xhr() {
       try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
       try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
       try { return new XMLHttpRequest(); } catch(e) {}
       alert("AJAX n'est pas supporté par votre navigateur");
       return null;
    }
     
     
    function voirProduit(id)
    {
    var xhr = get_Xhr();
    		xhr.onreadystatechange = function()
            {
            if(xhr.readyState == 4)
                {
    			document.getElementById("product").innerHTML=xhr.responseText;
    			}
            }
        appel="recup_produit.php?val2="+id;
        xhr.open("GET",appel, true);
        xhr.send(null);
     
    }
    Voici mon formulaire :
    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
    <table>
    <form action="gab1_p2.php" method='get' name='mon_form' enctype="multipart/form-data" >
    	<tr>
    		<td>Sélectionner une gamme de produit</td>
    		<td>
    			<select name="gamme_produit" onchange="voirProduit(selectedIndex)" >
    				<option value="" selected="selected"></option>
    				<?php
                                    
                                            $req="SELECT * FROM gammes";
                                            $result=mysql_query($req);
                                            $nb=mysql_num_rows($result);
                                            $i=0;
                                            while($nb>$i){
                                            
                                                    $data=mysql_fetch_object($result);
                                                    echo "<option value='".$data->gamme_id."' >".$data->gamme_nom."</option>";
                                                    $i++;
                                            }
                                    ?>
    			</select>
    		</td>
    	</tr>
     
    	<tr>
    		<td>Sélectionner un produit</td>
    		<td>
    <div id="product">
    <select> 
     
    </select>
    </div>
    		</td>
    	</tr>
     
    	<tr>
    		<td>Affiner votre recherche</td>
    		<td>
    			<input name="keyword" type="text" value="Taper un mot cl&eacute;" onclick="if(this.value=='Taper un mot cl&eacute;')this.value=''"/>
    		</td>
    		<td colspan="2" align="right"><input name="submit" type="submit" value="Rechercher"  /></td>
    	</tr>
     
    </form>
    </table>
    Voici le fichier recup_produit.php qui est censé générer ma liste déroulante :
    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
    <?php
    header('Content-type: text/html; charset=UTF-8');
    $produit=$_GET['val2'];
    mysql_connect("localhost","root");
    mysql_select_db("support");
    $req2="SELECT * FROM produits WHERE gamme_id_='$produit' ";
    $result2=mysql_query($req2) or die(mysql_error());
     
    $nb2=mysql_num_rows($result2);
    $i2=0;
     
    echo "<select name='prod' id='prod' onchange='valeur_produit(selectedIndex)'>";
     
            while($nb2>$i2){
                    
                    $data= mysql_fetch_object($result2);
                    echo "<option value='$data->nom_produit' >$data->nom_produit</option>";
            
                    $i2++;
            
            }
    echo "</select>";
    ?>
    Merci d'avance pour votre aide

  4. #4
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 173
    Par défaut
    je suis un peu déçu que personne n'est pu trouver une réponse à mon problème.
    Néanmoins j'ai trouver une solution en testant le navigateur dans un 1er temps puis avec deux fonctions, une pour IE et l'autre pour tous les autres.
    En effet il semble que FF et autres il faut aller chercher les <option> alors que pour IE tout le <select>. J'ai un peu un code de porc, voila pourquoi je ne mes pas à votre disposition.

Discussions similaires

  1. Récupérer la valeur d'une liste déroulante
    Par Lenezir dans le forum Langage
    Réponses: 6
    Dernier message: 25/01/2008, 16h35
  2. Réponses: 10
    Dernier message: 28/11/2007, 11h12
  3. récupérer la valeur d'une liste déroulante + comparaison de dates
    Par jackseed dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/06/2007, 16h29
  4. Réponses: 11
    Dernier message: 26/04/2007, 10h40
  5. récupérer la valeur d'une liste déroulante dynamique
    Par grinder59 dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 23/01/2006, 17h51

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