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] ASP liste déroulantes pays departement ville


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut [AJAX] ASP liste déroulantes pays departement ville
    Bonjour je voudrais faire des lsites déoulantes lié a des bases de données en ajax.
    Je voudrais déja faire que si le pays de la france est choisi faire apparaitre une liste de département sinon rien tout ça en ajax...
    Mais je ne sais pas trop comment faire :

    J'ai déja fait dans ma page principale une liste de pays :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <select name="pays" onchange="go()">
    		<option value="NULL">Choisissez votre pas</option>
    		<%
    		if rs.recordcount>0 then rs.movefirst
     		while not rs.eof
    		%>
    			<option value="<%=rs("PaysId")%>"><%=rs("PaysNom")%></option>
    		<%
    		rs.movenext
     		wend
    		%>
    	</select>
    ainsi que rajouté du code js :
    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
     
    <script language = "javascript">
    function getXhr()
    {
    	var xhr = null; 
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
    		try
    		{
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    		catch (e)
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else
    	{// XMLHttpRequest non supporté par le navigateur 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		xhr = false; 
    	}
    	return xhr;
    }
    function go()
    {
    	var xhr = getXhr();
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function()
    	{
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4 && xhr.status == 200)
    		{
    			leselect = xhr.responseText;
    			// On se sert de innerHTML pour rajouter les options a la liste
    			document.getElementById('pays').innerHTML = leselect;
    		}
    	}
    	// Ici on va voir comment faire du post
    	xhr.open("POST","../departement.asp",true);
    	// ne pas oublier ça pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	// ne pas oublier de poster les arguments
    	// ici, le dep choisi dans le déroulant DEP
    	sel = document.getElementById('pays');
    	pays = sel.options[sel.selectedIndex].value;
    	xhr.send("pays="+pays);
    }
    </script>
    et aussi crée une page departement.asp pour appel 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
     
    <%
    response.buffer=true
    response.write("<select name='departement'>")
    if request("pays")<>"-1" then%>
    <!--#include file="../connexion.asp" -->
    	<%set rs=server.createObject("adodb.recordset")
    	requete="SELECT * FROM TBLDEPARTEMENT WHERE DepartementPaysId='" & request("pays") & "' ORDER BY DepartementCode"
    	rs.open requete, connecteur,1,2,1
    	while not rs.eof
    		response.write("<option value='" & rs("DepartementId") & "'>" & rs("DepartementCode")&" - "&rs("DepartementNom") &"</option>")
    		rs.movenext
    	wend
    	rs.close
    	connecteur.close
    end if
    response.write("</select>")
    %>
    Mais je ne sais pas ce qu'il faut faire ensuite, comment mettre ma liste département sur ma page principale?

    Merci pour votre aide

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 021
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 021
    Points : 2 278
    Points
    2 278
    Par défaut
    Salut,
    apparemment le problème se situe ici :

    document.getElementById('pays').innerHTML = leselect;

    tu demandes d'ajouter le select des départements dans celui des pays.

    Le plus simple, t'ajoutes un div avec un id sur ta page, puis :

    document.getElementById('id_du_div').innerHTML = leselect;

    Si tu as des problèmes d'accents tu peux spécifier l'encodage avec Response.ContentType
    Bye
    Vive les roues en pierre

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Points : 112
    Points
    112
    Par défaut
    Non en fait le problème, c'est que je ne sais pas comment mettre ma liste de département sur ma page principale!

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Points : 276
    Points
    276
    Par défaut
    salut,

    tu places la balise select dès le départ et de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select id='select_dept' disabled='disabled'>
    <option value=''>Choisir le Département</option>
    </select>
    ensuite, dans ta fonction de callback :
    1- si ton responseText est vide alors rien ne se passe ;

    2- ton responseText contient des informations :
    à l'aide d'une boucle tu ajoutes les options à la liste de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('select_dept').option[a] = new Option ('value_option','nom_de_loption');
    'a' étant initialisé à 1 et incrémenté à chaque tour.
    Puis toujours dans la fonciton de callback, une fois la boucle traitée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('select_dept').disabled = false;

    voila, chui dsl mais jpeux pas mieux faire car je ne fais pas d'asp... il faut donc que tu adaptes
    Conception et hébergement de votre site Web : http://www.jvprod.fr !

Discussions similaires

  1. Liste de pays et villes
    Par ishere11 dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2018, 21h40
  2. Réponses: 1
    Dernier message: 29/06/2012, 17h28
  3. [MySQL] Récupérer sélection dans liste déroulante pays
    Par LiliValerie dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/02/2012, 09h24
  4. [MySQL] liste deroulante pays > departement > ville
    Par Funraill.net dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 16/02/2006, 00h17
  5. asp + liste déroulante
    Par cell dans le forum ASP
    Réponses: 6
    Dernier message: 25/04/2005, 14h12

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