donc ... pour les explications, t'en fait pas, ya pas de soucy !... j'ai l'habitude de manipuler Prototypes (un peu trop diront certains, vu que j'oublie la base du JS

)
en fait le tableau que tu renvoi par ta page 'getArtists.php' doit etre de la forme
array('artists' => array(array('art_id'=>'1', 'art_name'=> 'nom'), array('art_id'=>'2', 'art_name'=> 'nom'), array('art_id'=>'3', 'art_name'=> 'nom'), ...))
ce qui fait que la réponse est de la forme :
"{artists : [{'art_id'=>'1', 'art_name'=> 'nom'},{'art_id'=>'1', 'art_name'=> 'nom'},{'art_id'=>'1', 'art_name'=> 'nom'},...]}"
ainsi, tu visualises mieux pourquoi l'on doit placer la fonction each() sur transport.responseText.evalJSON().artists et non sur le evalJson() ...
la fonction
bind(elt) permet de transférer l'élément elt en temps que 'this' dans la fonction apelée.
je m'explique :
[javascript]
var maFonc = function(){
alert(this.value);
}
[/javascript]
<input id="button1" type="button" value="test1" onclick="mafonc()" />
<input id="button2" type="button" value="test2" onclick="mafonc.bind($('button1')" />
lors du click sur les deux boutons une alert s'ouvre en contenant le message "test1" ... le second bouton joins lors l'appel de la fonction le premier bouton en tant qu'élément référant (this) ...
Dans le cas qui nous intéresse, c'est pour pouvoir réutiliser notre objet GetArtists depuis la fonction appelée à l'intérieur de la fonction onComplete() ...
Voila, j'espère ne pas avoir été trop brouillon !...

@+
donc ... pour les explications, t'en fait pas, ya pas de soucy !... j'ai l'habitude de manipuler Prototypes (un peu trop diront certains, vu que j'oublie la base du JS :oops: )
en fait le tableau que tu renvoi par ta page 'getArtists.php' doit etre de la forme
array('artists' => array(array('art_id'=>'1', 'art_name'=> 'nom'), array('art_id'=>'2', 'art_name'=> 'nom'), array('art_id'=>'3', 'art_name'=> 'nom'), ...))
ce qui fait que la réponse est de la forme :
"{artists : [{'art_id'=>'1', 'art_name'=> 'nom'},{'art_id'=>'1', 'art_name'=> 'nom'},{'art_id'=>'1', 'art_name'=> 'nom'},...]}"
ainsi, tu visualises mieux pourquoi l'on doit placer la fonction each() sur transport.responseText.evalJSON().artists et non sur le evalJson() ...
la fonction [url=http://prototypejs.org/api/function/bind]bind(elt)[/url] permet de transférer l'élément elt en temps que 'this' dans la fonction apelée.
je m'explique :
[javascript]
var maFonc = function(){
alert(this.value);
}
[/javascript]
[html]
<input id="button1" type="button" value="test1" onclick="mafonc()" />
<input id="button2" type="button" value="test2" onclick="mafonc.bind($('button1')" />
[/html]
lors du click sur les deux boutons une alert s'ouvre en contenant le message "test1" ... le second bouton joins lors l'appel de la fonction le premier bouton en tant qu'élément référant (this) ...
Dans le cas qui nous intéresse, c'est pour pouvoir réutiliser notre objet GetArtists depuis la fonction appelée à l'intérieur de la fonction onComplete() ...
Voila, j'espère ne pas avoir été trop brouillon !... :D @+