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 :

lier deux select [Trucs & Astuces]


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par défaut lier deux select
    Bonjour
    je sais que le sujet a deja été posté mais je n'arrive toujours pas à ce que je veux....
    Donc voila j'ai une page dans laquelle se trouve un formulaire avec des champs a remplir, notament un select avec le nom de pays que je vais chercher dansune base de données et en dessous des "departements" dans un select que je vais aussi chercher dans une base de données, mais je voudrais en fonction du pays choisi (grace a ma requete sql ca pas de pb), le probleme c'est que j'ai deja realise ca mais je faisais un submit o onchange sur mon prmier select, je stockai la valeur en asp dans une variable session et avec le submit cela me rechargeai ma page hop pas de pb, les deux etaients lies!
    La en fait je suis a l'interieur deja d'un formulaire donc pas moyen....
    Wala si quelqu'un pouvait tenter de me renseigner!
    D'avance merci!

    En fait je me permets de reposer la question car vos solutions proposes ne me satisfont pas

    En fait je fais de l'asp , j'ai bien trouver un semblant de solution mais malheuresement il y a des caracteres speciaux qui (l'accent circonflexe par exemple) qui font tous planté ou d'autres (accent simple par exemple) qui affiche des carrés a la place....


    Wala siouplé ne supprimé pas ce post avant que j'ai pu avoir une reponse...
    Je galere pas mal
    D'avance merci

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931

  3. #3
    Membre expérimenté
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Par défaut
    le lien entre deux liste déroulante dans un <form> voila ce que j'ai fais et cela marche très bien de mon coté...

    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
     
    <html>
    <?php
    include("connexion.inc");
    $reqSante="select * from t_action_contrat order by Code_action";
    $reqSanteExe=mysql_query("$reqSante") or die (mysql_error());
    ?>
    <table id="Table" border="1" bgcolor="" width="">
       <tr>
    	<td width="">
    <form method="post" id="mainForm">
    <Div ID=saisies>
    <select name="liste1" onchange="document.getElementById('mainForm').submit();">
    <?php
    while($aTab=mysql_fetch_array($reqSanteExe))
     {
     extract($aTab);
     $selected=(isset($_POST['liste1']) && $_POST['liste1'] == $lib_action)?'selected="selected"':'';
     echo '<option value="',$lib_action,'" ',$selected,'>',$lib_action,'</option>';
    }
    ?>
    </select>
    <?php
     
    if (isset ($_POST['liste1']) && !empty ($_POST['liste1']))
    {
     
    $val2=$_POST['liste1'];
    $rq5="select * from t_action_accompagnement,t_action_contrat  WHERE T_code_action=code_action and lib_action='".$val2."' order by Code_action_accompagnement";
    $rq5_exe=mysql_query("$rq5") or die (mysql_error());
    $test=mysql_num_rows($rq5_exe);
     
            if($test<=0)
            {
            echo"<textarea rows='2' name='tnom' cols='20'></textarea>";
            }
                    else
                    {
     
                    $val=$_POST['liste1'];
                    $rq2="select * from t_action_accompagnement,t_action_contrat  WHERE T_code_action=code_action and lib_action='".$val."' order by Code_action_accompagnement";
                    $rq2_exe=mysql_query("$rq2") or die (mysql_error());
     
                    echo '<select name="liste2">';
                    while($RS2=mysql_fetch_array($rq2_exe))
                    {
                             extract($RS2);
                            echo"<option value='$Lib_action_accompagnement'>$Lib_action_accompagnement";
                            }
                    echo '</select>';               
                    }
    }
     
    ?>
    </div>
    </td>
    </tr>
    </table>
     
    //ici tu met ton bouton de type sumbit avec des champs hidden par exemple qui recupere les valeurs de tes listes
     
    </form>
     
    </html>
    Change les noms pour essayer avec tes propre liste déroulante, en bas j'ai un bouton Submit qui m'envoye la valeur de la premiere et de la deuxieme liste déroulante en methode POST... basique simple et efficasse je pense.

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Citation Envoyé par Alex35
    En fait je fais de l'asp avec sql server
    ...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par défaut
    oui non ok merci a vous deux
    d'un j'avais lu le post au dessus, de deux je fais de l'asp de trois je ne veux surtout pas que ma page soit rechargée donc pas de submit et enfin de 4 avec l'utilistaion de xmlrequest malheuresement il y a des caracteres speciaux qui (l'accent circonflexe par exemple) qui font tous planté ou d'autres (accent simple par exemple) qui affiche des carrés a la place....

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    marrant ça y'en a un qui est pile la moitié de l'autre ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par défaut
    Citation Envoyé par SpaceFrog
    marrant ça y'en a un qui est pile la moitié de l'autre ...
    ?

  8. #8
    Membre expérimenté
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Par défaut
    des scripts qui se ressemble ??!! mais c'est honteu !!! lol

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    non non 70 / 2 = 35
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Citation Envoyé par SpaceFrog
    marrant ça y'en a un qui est pile la moitié de l'autre ...


    @AlexDemi : Si t'as des problèmes d'accents, c'est l'encodage qu'il faut revoir, pas la méthode.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par défaut
    Citation Envoyé par SpaceFrog
    non non 70 / 2 = 35
    je comprends pas trop la....

  12. #12
    Membre expérimenté
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Par défaut
    ha oui terrible j'avais pas vu lol

    Donc :

    Des utilisateurs qui se ressemble !!! mais c'est.... ben oui c'est possible mais nous deux nous n'avons en commun que le "Alex" lol

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par défaut
    ok
    bon on a pas trop avancé....
    je vais aller voir du coté de l'encodage mais je comprends po trop, car c'est bien le xmlrequest qui me pose probleme...

  14. #14
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Encode ta page en UTF-8 et tes caractères accentués mets-les en caractère HTML.

    Exemple : é => &eacute;

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par défaut
    C fait , mais tjs le mm probleme...

  16. #16
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Il ressemble à quoi ton code ..?

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par défaut

    bon alors j'ai :
    ma page index:
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <%
    Dim Scripting_Dictionary
    Set Scripting_Dictionary = Server.CreateObject("Scripting.Dictionary")
    Scripting_Dictionary.CompareMode = VBBinaryCompare
     
    Scripting_Dictionary.Add "Pays", request("list0")
    Scripting_Dictionary.Add "Departement", request("list1")
    %>
    <!-- #include file="xml_serveur.asp"-->
     
    <script language="JavaScript">
    	 // Mise à jour des listes via XMLHttpRequest
         function liste(form_select,query_1,t) {
            var liste_1 = form_select.elements["list"+(query_1-1)];
            var index = liste_1.selectedIndex;
     
            for(i=query_1;i<=t;i++) form_select.elements["list"+i].options.length = 0;
     
            	if(index > 0) {
                	var xhr_object = null;
                	if(window.XMLHttpRequest) // Firefox
                  		xhr_object = new XMLHttpRequest();
                	else if(window.ActiveXObject) // Internet Explorer
    					xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
                	else { // XMLHttpRequest non supporté par le navigateur
                  		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
                  		return;
            	}
     
               xhr_object.open("POST", "xml_serveur.asp?query_1="+query_1, true);
     
               xhr_object.onreadystatechange = function() {
               if(xhr_object.readyState == 4)
               		eval(xhr_object.responseText);
               }
     
               xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
               var data = "champ="+escape(liste_1.options[index].value)+"&form="+form_select.name+"&select=list"+query_1;
               xhr_object.send(data);
             }
          }
     
          // Mise à jour du selectedIndex d'une liste
          function update(L) {
             array_liste = new Array;
             array_liste[0] = "<%=Scripting_Dictionary("Pays")%>";
             array_liste[1] = "<%=Scripting_Dictionary("Departement")%>";
             if(array_liste[L]=="") return;
             form_select = document.forms.form_selects;
             liste_update = form_select.elements["list"+L];
             for(i=0;i<liste_update.options.length;i++)
                if(liste_update.options[i].value==array_liste[L]) {
                   liste_update.selectedIndex=i;
                   if(L1) liste(form_select,L+1,1);
                   break;
                }
          }
     
    </SCRIPT>
     
     
    <html>
    <body>
            <form name="form_selects" id="form_selects" method="POST">
            	<font size="2" face="Verdana, Arial, Helvetica, sans-serif">
    				Pays:
            		<select class="select1" name="list0" onchange="liste(this.form,1,1);">
            			<option value="">Choisir Pays</option>
            			<%=liste_serveur_dpt%>
    				</select>
     
    				Departement:
    				<select class="select2" name="list1">
    					<option value="">Choisir Departement</option>
    				</select>
            	</font>      
            </form>
     
    </body>
    </html>

    ma page server:
    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
    <%
    dim table_serveur
    table_serveur = "Departement"
    
    %>
    <!-- #include file="conn_xmlrequest.asp"--><%
    
    dim choix_type
    choix_type = request("query_1")
    dim s_Sql
    select case choix_type
       case "1" 'Liste des Departements
      	     
        s_Sql  = "SELECT  NumDepartement, NomDepartement  FROM " & table_serveur _
                & " WHERE IdPays = '" & request("champ") & "' ORDER BY NumDepartement "        
          response.write "var request_document = document.forms['" & request("form") & "'].elements['" _
             & request("select") & "'];"   
          response.write "request_document.options.length = 0;"
    
          RS_XML_Request.open s_Sql,Conn_XML_Request,1,1 
    	  response.write "request_document.options[request_document.options.length] = new Option('Choisir une Departement','Null');"
          while not RS_XML_Request.eof 
    	  	 'RS_XML_Request(1) = Replace(RS_XML_Request(1),"o1", "ô")
             response.write "request_document.options[request_document.options.length] = new Option('" &RS_XML_Request(0)& " - " & RS_XML_Request(1) & "','" & RS_XML_Request(0) & "');"
             RS_XML_Request.moveNext
          wend
          RS_XML_Request.close
          response.write "update(" & choix_type & ");"
    
       case else 'Liste des serveur
          dim liste_serveur_dpt
    	  liste_serveur_dpt = ""
          s_Sql = "SELECT * FROM Pays ORDER BY IdPays"
          RS_XML_Request.open s_Sql,Conn_XML_Request,1,1
          while not RS_XML_Request.eof
             liste_serveur_dpt = liste_serveur_dpt & "<option value=""" & RS_XML_Request(0) & """>" & RS_XML_Request(1) & "</option>" & VbCrLf
             RS_XML_Request.moveNext
          wend
          RS_XML_Request.close
     
    end select
    
    Conn_XML_Request.close
    %>
    et une page de connection


    la ligne que j'ai mise en rouge c'est la requete pour mon deuxieme select et en fait si dans mes donnes j'ai des ô alors boom erreur javascript mm si g remplacé par des &ocirc;

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 745
    Par défaut
    THE POWER OF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.charset="iso-8859-1"

  19. #19
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    très fort
    à noter le coup du response.charset pour la FAQ AJAX
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  20. #20
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    C'était bien un problème d'encodage.

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

Discussions similaires

  1. [MySQL] Lier deux select
    Par Sub217 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/10/2010, 00h14
  2. [Dojo] Lier deux dojox.grid.cells.Select dans un dojox.grid
    Par moukit233 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 03/09/2009, 15h18
  3. [Javascript] Comment lier deux liste de sélection
    Par orleans dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/04/2006, 07h12
  4. lier deux tables a partir dun calcul!!
    Par marie10 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/04/2004, 09h44
  5. comment lier deux tables?????
    Par baboune dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/03/2004, 14h45

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