Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/02/2011, 17h39   #1
Invité de passage
 
Inscription : octobre 2009
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 9
Points : 0
Points : 0
Par défaut Actualisation de liste déroulante dynamique (cache?)

Hello,

Je débute en javascript. J'imagine que mon problème a été traité maintes fois sur ce forum mais je ne sais pas trop avec quel mot clé faire ma recherche donc je poste un nouveau topic en espérant que les modos ne m'en voudornt pas trop

Voici mon problème :
J'ai une liste déroulante et selon les items choisis, un div est censé :
- soit afficher une série d'informations (du texte et un lien)
- soit afficher une 2ème liste déroulante avec d'autres items
J'utilise donc la fonction innerHTML() pour remplir mon div.

Quand je lance ma page et que je choisi un item censé afficher la série d'infos, ça marche.
Quand je lance ma page et que je choisi un item censé afficher la 2ème liste déroulante, ça marche.
Quand je lance ma page et que je choisi un item censé afficher la série d'infos, puis que je change l'item de la liste pour un item censé afficher la 2ème liste déroulante ça marche.
Quand je lance ma page et que je choisi un item censé afficher la 2ème liste déroulante, puis que je change l'item de la liste pour un item censé afficher la série d'infos ça ne marche pas !

Je ne peux afficher la 2ème liste déroulante qu'après avoir fermé et relancé mon navigateur. J'en déduis donc que c'est un problème de cache mais je n'ai aucune idée de comment le résoudre (je précise que je n'ai essayé que sous IE)

Si quelqu'un a une idée je lui en serai gré
John-Deluxe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 19h15   #2
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
salut

et tu remplis comment ta deuxième liste déroulante et ton div? (avec quoi qui vient d'où?)
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 19h57   #3
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
dynamique oui mais de quelle origine. Si il y a un ajax qui va chercher des valeurs il y a en effet sans doute une interférence du cache.
ça m'embêterais de tuer encore un chaton pour deviner ton code dans ses entrailles ... Le mieux serait que tu nous montre un bout de code ...
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 20h50   #4
Invité de passage
 
Inscription : octobre 2009
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 9
Points : 0
Points : 0
Ouh là, j'espère qu'il n'est pas trop tard pour les chatons

La 1ère liste déroulante est alimentée par une base de données (je vous passe le code php) et fait appel à une fonction js par l'intermédiaire de l'évènement "onchange" :
Code html :
1
2
3
4
5
6
<form name='formville'>
<Select name='ville' onchange="afficherdiv()">
...
</select>
</form>
<div id='saisieRue'></div>

code de la fonction afficherdiv() :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
function afficherdiv() {
var form = document.formville;
var liste = form.ville;
var fichier = "traitementville.php?ville=";
var nomdiv = "saisieRue";
getXhr();
var i = liste.options[liste.selectedIndex].value;
xhr_obj.open("GET", fichier+i, true);   
xhr_obj.send(null);   
xhr_obj.onreadystatechange = function() {
if(xhr_obj.readyState == 4) document.getElementById(nomdiv).innerHTML = xhr_obj.responseText}
}
et dans le script php visé, je teste si dans la bdd, il y a plusieurs enregistrements correspondant à la ville cliquée dans la 1ère liste. Si oui je les affiche dans une 2ème liste déroulante. si il n'y en a qu'un, j'affiche toutes les valeurs de cet unique enregistrement.

Donc en gros, oui c'est de l'ajax
John-Deluxe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 08h24   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
Code :
fichier+i+"&ts="+new Date()"
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 10h55   #6
Invité de passage
 
Inscription : octobre 2009
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 9
Points : 0
Points : 0
Et bah ça marche, merci beaucoup !!! Une petite explication histoire que je ne meurs pas idiot ??
John-Deluxe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 11h06   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
en rajoutant un paramètre qui se modifie a chaque fois ... (date avec millisecondes) tu forces la requete à retourner sur le serveur
sinon a chaque fois qu'il rencontre la même url il cherche dans le cache
là avec une url différente il retourne a la source
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 12h43   #8
Invité de passage
 
Inscription : octobre 2009
Messages : 9
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 9
Points : 0
Points : 0
Ok je comprends Merci beaucoup pour la soluce et pour l'éclairage
John-Deluxe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h28.


 
 
 
 
Partenaires

Hébergement Web