Suivez les fils RSS
 

Des livres incontournables pour tout maîtriser

  • CSS avancées - vers HTML5 et CSS3
  • HTML5
  • CSS2
  • PHP5 avanc�
  • Memento MySQL
  • Memento CSS 3
  • Memento XHTML
  • WordPress 3 100% pratique
  • jQuery et jQuery UI
Auteur
Seyu
#
Citer
54 Posts
Bonjour !

Je viens de me plonger pour la première fois dans la joie de l'autocomplete de l'ui Jquery mur
Après avoir essayé plusieurs façons de faire, je ne vois pas comment je peux faire !

Mon but est simplement d'instancier le tableau des données pour l'autocomplete avec un ajax récupérant le nom de mes sociétés.

Voici ce que j'essaye pour l'instant (qui ne fonctionne pas ) :


function GetSociete ()
{   
    var availableTags = new Array(); 
    $.ajax({   
			type: 'POST',
			url: 'scripts_php/recup_societe.php',
			dataType: 'json',
			success:   
			     function (json) 
                {
                    for (j=0; j<json.length; j++)
                    {
                        availableTags[j] = json[j];                        
                    }  
                  
				}       
		});

        return availableTags;
        
}    
    var availableTags = new Array();
    
    availableTags = GetSociete();
    
    console.log (availableTags);

	$( "#nom_soc" ).autocomplete({
		source: availableTags     
	});  


Mais je crois que je ne fais pas les choses dans le bon sens >< C'est à dire que le return, du fait que l'ajax est asynchrone, veut s'effectuer avant que la requête ajax n'ai créé le tableau qu'il doit renvoyer ... Mais je ne peux pas non plus mettre le return à la fin de mon success, ça ne fonctionne pas ! ohwell
Merci d'avance ! lol
Modifié par Seyu (20 Feb 2012 - 17:22)

^
Seyu
#
Citer
54 Posts
Edit : Le problème venait effectivement du fait que l'ajax se faisait de manière asynchrone, donc un petit paramètre et tout fonctionne :

    $.ajax({   
			type: 'POST',
			url: 'scripts_php/recup_societe.php',
			dataType: 'json',
			async : false,
			success:   
			     function (json) 
                {   
                    for (i=0; i<json.length; i++)
                    {
                        availableTags = json[i];                         
                    }  
				}       
		});
[/i]
Modifié par Seyu (21 Feb 2012 - 09:19)

^