Partage
  • Partager sur Facebook
  • Partager sur Twitter

AJAX: problèmes avec textfield "intelligent"

    2 novembre 2008 à 8:31:48

    Bonjour,

    je suis perdu dans un casse tete en ajax. J'ai réalisé un formulaire de recherche de membre. Ce qu'il se passe normalement, c'est une simple recherche php avec des regex, qui interroge une bdd et liste les membre qui pourraient correspondre à l'entrée de l'utilisateur, sur plusieurs paramètres (non, prénom, société, blablabla)...

    Je voulais agrémenter mon système quelque peu avec une petite dose de AJAX. Je voulais qu'à chaque fois qu'une lettre est tapée dans mon champs, un XHR récupère un XML et affiche en réponse dans un div, les membres dont ces paramètres commencent par l'entrée de l'utilisateur.

    En clair, si l'utilisateur tape "fr" dans ce champs et que ma base possède un membre Fred, ou François, les deux hurluberlu seraient affichés dans le div du dessous.

    Pas de problème jusque là, c'est clair, mais là où je bloque, c'est que je voudrais que le nom "fred" et "françois" dans le div soient des ancres qui pourraient être cliquées pour transmettre leur valeur (ou innerHTML) au textfield de base.

    Ainsi la boucle serait bouclée: on tape "fr" dans le textfield -> on a "fred" et "françois" qui apparaisse, -> on clique "fred", et le textfield prend "fred" comme valeur.

    Voici ma requete JS:

    function getData(o_data)
    {
    	var nbElements = o_data.getElementsByTagName("membre").length;
    	
    	if(niveauSelection > nbElements)
    	{
    		niveauSelection = nbElements ;	
    	}
    	
    	var a_recherche = o_data.getElementsByTagName("recherche") ;
    	
    	var a_membres = a_recherche[0].getElementsByTagName("membre") ;
    	var i ;
    	var liste = "" ;
    	for(i=0; i< nbElements; i++)
    	{
    		liste += '<br><a href="#" onclick="alert()">' + a_membres[i].firstChild.nodeValue + '</a>'  ;	
    	}
    	
    	document.getElementById("div_xhrResponse").innerHTML = liste ;
    	
    
    
    }
    


    donc comme on le voit, je récupère la valeur du noeud "membre" et je parcours le tableau en concatènant une chaine liste. Enfin j'applique à mon div (id=div_xhrResponse) le innerHTML fait par cette liste. Chaque élément de ma liste est une ancre qui possède un attribut onclick.

    Ce qui se produit, c'est que lorsqu'on entre des caractères dans le textfield, tout se passe bien. Mes ancres me proposent les membres qui sont enregistrés dans la bdd et qui correspondent à ma recherche. Par contre, si je clique dessus, je ne peux pas déclencher le onclick(). J'ai regardé dans le source de la page, alors que le div était visible et affichait correctement ma liste, mais ces ancres n'y sont pas présentes...

    Voilà, donc je sais pas si y a un moyen de régler mon problème, ou de le contourner...

    Merci d'avance pour les lectures en tout cas!

    +
    • Partager sur Facebook
    • Partager sur Twitter

    AJAX: problèmes avec textfield "intelligent"

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown