Probleme evenement onclick pour excecuter une fonction [Résolu]

Messages postés
33
Date d'inscription
lundi 6 novembre 2000
Dernière intervention
10 mars 2009
- - Dernière réponse : hshamsan123
Messages postés
2
Date d'inscription
samedi 1 avril 2006
Dernière intervention
19 janvier 2008
- 19 janv. 2008 à 11:01
le probleme l'evenement onclick se declenche une seul fois et ne se repete pas , je voudrais actualiser une liste deroulente apres un clique sur elle meme : mon code est :

<select name="liste1" onClick='remplir_nom("pd_id");'>  ......

<script type='text/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 remplir_nom(combo){
                var xhr = getXhr();
                xhr.onreadystatechange = function(){
                         if(xhr.readyState 4 && xhr.status 200){
                        leselect = xhr.responseText;
                
                        document.getElementById(combo).innerHTML = leselect;
           
                    }
                }

                xhr.open("POST","listenom.php",true);

                xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

            xhr.send("");
            }
        </script>

j'ai cree un boutton recharger et il fonctionne tres bien ,mais ca serais  la derniere  solution  a  mon probleme
   

merci pour votre reponse
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
2
Date d'inscription
samedi 1 avril 2006
Dernière intervention
19 janvier 2008
3
Merci
Desole: j'ai fait une petit erreur
premierment declarer une variable comme ca:
var counteur=0; au demmarage du votre script JAVA
deuxiement

Remplacer la line:
xhr.open("POST","listenom.php",true);

par :
xhr.open("POST","listenom.php&"+counteur++,true);
----

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de hshamsan123
Messages postés
33
Date d'inscription
lundi 6 novembre 2000
Dernière intervention
10 mars 2009
1
0
Merci
desole j'ai fais une erreur en ecrivant mon code <select name="liste1" onClick='remplir_nom(liste1);'>
alors  il ya une reponse  a  ma question ?
Commenter la réponse de lahlousimo
Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Dernière intervention
23 septembre 2008
0
Merci
onselect=remplir_nom("liste1");
Commenter la réponse de PROTECTIONNISTE
Messages postés
33
Date d'inscription
lundi 6 novembre 2000
Dernière intervention
10 mars 2009
1
0
Merci
ca ne donne aucun effet !!!!!
Commenter la réponse de lahlousimo
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
42
0
Merci
Bonjour,

    je n'ai pas compris grand chose....

<select name="liste1" onClick='remplir_nom("pd_id");'>  ......

    c'est quoi pd_id ? pas vu...

    et on va chercher un id=liste1... qui n'existe pas.
    il y a bien un name="liste1", pas id="liste1"

    et onclick sur un select ? vaut mieux éviter !

>>...il fonctionne tres bien ,mais ca serais  la derniere  solution  a  mon probleme
    pas compris.




<hr />



Cordialement        Bul     [mon Site]     [M'écrire]



<hr />
Commenter la réponse de cs_bultez
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
42
0
Merci
il y a bien un id=liste1 et un name=liste1...






mal vu. mais ça n'enlève rien à mes questions,
    et IE, sait remplacer un id par le name
       et le contraire... vaut mieux éviter aussi.
mettre name="xxx" id="xxx" ce sera plus clair.
<hr />


Cordialement        Bul     [mon Site]     [M'écrire]



<hr />
Commenter la réponse de cs_bultez
Messages postés
33
Date d'inscription
lundi 6 novembre 2000
Dernière intervention
10 mars 2009
1
0
Merci
pour le moment jai créé un boutton "Recharger" pour actualiser la liste deroulente mais c'est pas une solution  royale  ,  l'utilisateur  ne  va  pas  cliquer a chaque fois sur le boutton  recharger

jai fais une erreur de saissie et mon code est :

<select name="liste1" onClick='remplir_nom("liste1");'>  ......

<script type='text/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 remplir_nom(combo){
                var xhr = getXhr();
                xhr.onreadystatechange = function(){
                         if(xhr.readyState 4 && xhr.status 200){
                        leselect = xhr.responseText;
                
                        document.getElementById(combo).innerHTML = leselect;
           
                    }
                }

                xhr.open("POST","listenom.php",true);

                xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

            xhr.send("");
            }
        </script>

alors quesque vous me proposez  comme  evenement  pour  remplir la liste deroulente
Commenter la réponse de lahlousimo
Messages postés
13619
Date d'inscription
jeudi 13 février 2003
Dernière intervention
15 octobre 2013
42
0
Merci
à déclencher quand nécessaire... mais là, il n'y a que toi qui puisse
    le dire "quand c'est nécessaire".
        dés réponse affichée ? après un délai ? sur un évènement ?
        suite à l'action utilisateur ? ... que sais-je ?
<hr />


Cordialement        Bul     [mon Site]     [M'écrire]



<hr />
Commenter la réponse de cs_bultez
Messages postés
33
Date d'inscription
lundi 6 novembre 2000
Dernière intervention
10 mars 2009
1
0
Merci
pour moi levenenment c apres le click sur la liste deroulante elle se rempli mais quand je fais

<select name="liste1" >
la liste se ferme apres chaque clique (donc la fonction s'exucte )mais je pourrais pas selectionner un element de la liste

et quand je fais comme ca :


<select name="liste1"  onClick='remplir_nom("liste1");'>
la fonction s'excecute seulement apres le premier clique sur la liste deroulante !!!
Commenter la réponse de lahlousimo
Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Dernière intervention
23 septembre 2008
0
Merci
<select name="maliste" onSelect=ta_fonction();>
<option> ...
<option> ..
</select>

J'avais fais une faute ^^ onselect = onSelect.

Lorsque tu as choisi une option dans la liste elle execute ton script ta_fonction().
Commenter la réponse de PROTECTIONNISTE
Messages postés
2
Date d'inscription
samedi 1 avril 2006
Dernière intervention
19 janvier 2008
0
Merci
premierment declarer une variable comme ca:
var counteur=0; au demmarage du votre script JAVA
deuxiement



Remplacer la line:
xhr.open("POST","listenom.php",true);

par :
xhr.open("POST","listenom.php&"+i++,true);
----
Commenter la réponse de hshamsan123

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.