11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je bosse sous Zend Framework, et j'ai un peu de mal à implémenter le plugin Autocomplete.

Voici mon fichier JS :


$(document).ready( function() {....

// Liste contiendra la liste de toutes les sociétés
	var Liste = new Array();
	
	// On charge la liste de toutes les sociétés, retourné en JSON
	$.ajax({
		type: "POST",
		url: "/inscription/listeSociete",
		async: true,
		dataType: "json",
		data: { format: "json" }, // paramètre envoyé pour activer le context Ajax.
		
		success: function(data){
			Liste = data.liste;
                        console.log(data.liste);
		}
	});

	$("input#societe").autocomplete(Liste);


Tout marche bien jusque là,
data est un retour en Json produit par le Zend Framework qui ressemble à ça :

{"module":"default","controller":"inscription","action":"listeSociete","liste":{"1" : "societe1", "2" : "societe2", "3" : "societe3" ....}

Pour extraire societe, je fais donc un Liste = data.liste.

Et j'assigne cette liste dans l'option de .autocomplete()

Voila. Ca ne marche malheureusement pas, comme on a pu s'en douter.
Alors je me demande si j'aurai pas oublié quelquechose, un paramètre ou une fonction dans l'Autocomplete ?

Merci par avance pour votre aide.

Merci pour votre aide.
Pour avancer un peu dans mon schmilblick,

j'ai tenté de convertir le tableau d'objet data.liste en tableau tout court, en faisant un


success: function(data){

			$.each(data.liste, function(i,n){
					Liste[i] = n;		
			});
			
			console.log(Liste);
			
		}


J'obtiens bien un tableau, mais il n'est pas non plus lu par l'AutoComplete.
Et bizarrement dans le log j'obtiens plein de row "undefined" Smiley confus [/i]
Modifié par supertino7 (21 Sep 2009 - 14:22)
Je comprends vraiment pas ce qu'il lui faut à Autocomplete pour fonctionner.

En fait, je pense que je viens de comprendre.

Si je crée un array par exemple :


var Liste = new Array();
Liste[0] = "Societe 1";
Liste[1] = "Societe 2";
Liste[2] = "Societe 3";

$("input#societe").autocomplete(Liste);


Ca marche très bien.

Mais avec mon tableau retourné, ça ne marche pas, car la key (correspondant à l'id de l'item dans la base de données) ne démarre pas à partir de 0.