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

ASP Discussion :

Actualiser une liste déroulante


Sujet :

ASP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 67
    Points : 44
    Points
    44
    Par défaut Actualiser une liste déroulante
    Bonjour à tous,

    voici mon problème :

    j'ai une liste déroulante de toutes les communes de ma base de données.
    Je dois en sélectionner une.
    Si la commune que je cherche n'est pas dans la liste, je dois l'ajouter à la base de données.
    Pour cela, j'ai un lien qui me permet d'ouvrir le formulaire d'ajout de la commune dans une autre fenêtre.
    Lorsque la commune est ajoutée, je ferme cette fenêtre et je me retrouve donc sur la liste déroulante des communes qui n'est pas mise à jour.

    Comment faire pour que cette fenetre soit mise à jour et que la dernière commune saisie apparaisse dans la liste?
    sachant que je ne peux pas faire F5 car j'ai d'autres champs qui ont déjà été remplis par l'utilisateur...

    j'espère avoir été assez claire...

    par avance, merci.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Hello,

    D'une manière ou d'une autre tu es obligé de rouvrir ta page pour que ta commune soit rajoutée. Il faut regarder du côté de Javascript avec un truc style opener.reload(), mais je pense que ce qui a déjà été entré ne sera plus là...
    Fiquet
    - FAQ SDL
    - FAQ C++

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 67
    Points : 44
    Points
    44
    Par défaut
    merci pour ton aide mais j'ai déjà cherché du côté du javascript et je n'ai pas trouvé de solution...

    il y a quand même 6 champs qui ont été remplis avant la commune alors ça m'embête un peu de devoir les resaisir...

    je cherche encore une solution mais merci encore!

  4. #4
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Je doute que tu puisses faire mieux malheureusement. Si tu veux la solution qui actualise, tu peux regader ce que j'ai mis avant, mais tu ne pourras pas sans actualiser la page ça c'est sûr.

    il faudrait voir pour une autre solution, ou alors que quand tu cliques pour ajouter la commune, ça enregistre déjà les 1ères variables dans des session avant d'ouvrir la fenêtre, et ensuite tu affiches dans les input les valeur des sessions ça c'est possible...
    Fiquet
    - FAQ SDL
    - FAQ C++

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 67
    Points : 44
    Points
    44
    Par défaut
    ok merci pour tout...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut
    une solution serait peut-être d'enregistrer les champs déjà remplis dans des variables de sessions, comme cela une fois la page reloadée il suffit de faire un test sur l'existence de ces variables et, le cas échéant, les afficher comme valeurs par défaut dans ton formulaire.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 67
    Points : 44
    Points
    44
    Par défaut
    merci, j'aurais voulu éviter les sessions parce qu'il y en a déjà plein sur mon appli mais je crois que je vais suivre vos conseils...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 151
    Points : 116
    Points
    116
    Par défaut
    cela ne devrait pas être trop lourd niveau ressources car, n'en ayant besoin que sur cette unique page formulaire, tu peux les détruire dès que tu la quittes. Bon travail

  9. #9
    Membre éprouvé

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Points : 1 205
    Points
    1 205
    Par défaut
    Ou alors dans une table temporaire si tu ne veux pas utiliser de sessions, mais ce ne sera pas moins lourd à gérer.
    Fiquet
    - FAQ SDL
    - FAQ C++

  10. #10
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 31
    Points : 23
    Points
    23
    Par défaut A propos des champs !!
    Salut
    Je ne propose pas une solution à votre problème, mais j'ai une remarque à faire à propos de la méthode des variables sessions, il ne faut voir le probléme du côté du nombre des champs mais de la manière qui permettra de leur conserver leurs valeurs, c-à-d, si vous avez un nombre énorme de champs, celâ vous obligera à créer autant de vars sessions, et cela manque de fléxibité en terme d'algorithmique, donc pourquoi pas essayer de générer les champs dynamiquement et faire de la même pour les vars sessions ...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 67
    Points : 44
    Points
    44
    Par défaut
    bonjour et merci.

    pourrais-tu me donner + de précisions stp?

    que veux-tu dire par "générer les champs dynamiquement "?

  12. #12
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 31
    Points : 23
    Points
    23
    Par défaut champs dynamiques
    Salut
    En lisant les noms des champs à partir des tables (Ex. en vbs .....fields(...).name ) et donc faire en sorte qu'une boucle parcoure la BD, extrait les noms des tables et forme des champs portant les noms des tables, et, eventuellement les afficher dans un formulaire pour, justement, pouvoir conserver les valeurs saisies à travers, par ex., value=<% = Request(rc(....fields(...))) %>..

    Cette méthode n'est pas la meilleure, reste à savoir si elle fera l'affaire, et essayes de me faire part des résultats obtenus, car j'en ai besoin, moi aussi pour mon application
    Merci

  13. #13
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 64
    Points : 48
    Points
    48
    Par défaut
    J'ai le mm souci,mais recherche mon amené là http://www.sosordi.net/Depannage/762...ulaire-secours mais je comprend pas ce que c'est que son enregistrement/actualiser....si quelqu'un connait et peux expliquer!!

  14. #14
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut Re: champs dynamiques
    Citation Envoyé par bounnitcharaf
    Salut
    En lisant les noms des champs à partir des tables (Ex. en vbs .....fields(...).name ) et donc faire en sorte qu'une boucle parcoure la BD, extrait les noms des tables et forme des champs portant les noms des tables, et, eventuellement les afficher dans un formulaire pour, justement, pouvoir conserver les valeurs saisies à travers, par ex., value=<% = Request(rc(....fields(...))) %>..

    Cette méthode n'est pas la meilleure, reste à savoir si elle fera l'affaire, et essayes de me faire part des résultats obtenus, car j'en ai besoin, moi aussi pour mon application
    Merci
    Les nom des tables et des champs qu'ils contiennent sont rarement "friendly". De plus, c'est très sympa pour qui veut attaquer ta base de les lui afficher. En ce qui me concerne jutiliserai les cookies javascript. Je vous invite à faire un tour ici : http://www.dynamicdrive.com/dynamici...rmremember.htm
    A+
    Sinon, pour lister automatiquement une table entière, il y a ce bout de code:
    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
    Set rs = server.CreateObject("ADODB.recordset")
    	rs.open "MaTable", strProvider,1,1
    		response.write "nb champs = " & rs.fields.count & "<br>" 
    		response.Write("<table>"  + Chr(13) + Chr(10))
    			for i= 0 to rs.fields.count-1 
    				response.write ("<th>" & rs.fields(i).name & "&nbsp;</th>" + Chr(13) + Chr(10))
    			next 
    		while not rs.eof 
    			response.Write("<tr onMouseOver='changebgcolor(this)' onMouseOut='resetbgcolor(this)'>" + Chr(13) + Chr(10))
    			for i= 0 to rs.fields.count-1 
    				response.write ("<td>" & rs.fields(i).value & "&nbsp;</td>" + Chr(13) + Chr(10))
    			next 
    			response.Write("<tr>" + Chr(13) + Chr(10))
    			rs.movenext 
    		wend
    		response.Write("</table>" + Chr(13) + Chr(10))
    	rs.close
    set rs = nothing
    "Winter is coming" (ma nouvelle page d'accueil)

  15. #15
    Membre actif Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Points : 255
    Points
    255
    Par défaut
    Il est possible de rafraichir la liste de selection sans recharger la fenetre, mais c'est un peu compliqué
    le Principe est le suivant:
    Page 1 :
    Affiche la liste déroulate
    action -> Page 2 dans une fenetre ou dans une frame


    Page 2 :tratement
    insertion dans la base si besoin
    le traitement ASP (serveur) va généré un script client (JS) qui va rajouté dynamiquement le nouvelle élément dans la liste de selection
    Ex de code
    Page 1 :
    <% asp etc...%>
    <%
    'code de la pge
    %>
    <html>
    <head>
    <script>
    // la fonction qui ajoute l'element
    function fonctionAjouterElement(nouvelleValeur, nouveauTexte) {
    var nouveauOption = document.createObject("OPTIONS");

    nouveauOption.text = nouveauTexte;
    nouveauOption.value = nouvelleValeur;

    document.MonFormulaire.MaListe.options.add(nouveauOption);
    }
    // crée une référence dans la fenêtre courant vers la fonctions "fonctionAjouterElement" défini ci dessus
    window.ajouterElement = fonctionAjouterElement;

    /* crée une référence dans la fentre "top" (maitre de tous les autres) vers la fenetres actuel.
    ainsi la fenêtre actuel et la fonction d'ajout seront accessible toujours de la même manière, même s'il y a des frame.
    */
    widow.top.fentreATraiter = window
    </script>
    </head>
    le reste de la page

    Page 2 :
    <% asp etc...%>
    <%
    dim resulat
    ' traitement
    resulat = "widow.top.fentreATraiter.ajouterElement (""" & IdDeLaCommune & """, """ & NomDeLaCommune & """);"
    ' fin du traitement
    %>
    <html>
    <head>
    <script>
    function TraitementChargementPage() {
    <%=resulat %>
    }
    </script>
    </head>
    <body onload="TraitementChargementPage">
    reste du document
    </body>
    </html>
    Il n'y a que 2 choses infinies dans le monde :
    L'univers et la bétise humaine...
    Mais pour l'univers, je n'ai pas de certitude (A.E.)

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

Discussions similaires

  1. [AC-2010] actualiser une liste déroulante
    Par clemclem2121 dans le forum Access
    Réponses: 7
    Dernier message: 07/09/2012, 10h52
  2. [AJAX] actualiser une liste déroulante via une BDD
    Par Jimmy72_ dans le forum AJAX
    Réponses: 19
    Dernier message: 28/03/2011, 15h45
  3. Actualiser une liste déroulante d'une autre page
    Par philippef dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/11/2008, 14h17
  4. Actualiser une liste déroulante
    Par don_ladji dans le forum Langage
    Réponses: 1
    Dernier message: 27/04/2008, 09h49
  5. Actualiser une liste déroulante
    Par taisherg dans le forum IHM
    Réponses: 1
    Dernier message: 01/06/2007, 12h46

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