Bonjour,
Je cherche à faire fonctionner jQuery Autocomplete avec un renvoi de tableau multidimensionnel car j'aimerai remplir 2 champs input lors de la sélection d'un item dans le menu.
Quand mon tableau est unidimensionnel cela fonctionne parfaitement, mais comment indiquer à "Autocomplete" se qu'il doit afficher de mon tableau ?
Voici le tableau JSON renvoyé par le fichier PHP:
{"id":"2","name":"Bob"},{"id":"5","name":"Jean"},{"id":"7","name":"Leon"}]
Le code jQuery :
$("input[name=in-name]").autocomplete({
source: "ACName.php",
minLength: 1,
dataType: "json",
change: function(event, ui) { console.log(ui); }
});
Merci
J'ai trouvé la solution si ça interresse quelqu'un :
$("#form_WS").on("focus", "input[id^=FL]", function(e){
$(this).autocomplete({
source: "ACNameWorker.php",
minLength: 2,
select : function(event, ui){
$(this).val(ui.item.shortName)
$(this).prev("input").val(ui.item.value);
$(this).next("input").val(ui.item.residence);
return false;
}
});
});
- Puis PHP
$return_arr[] = array(
'label' => $d['firstname']." ".$d['lastname'],
'shortName' => $d['FLw'],
'value' => $d['id'],
'residence' => $d['residence']);
Le tableau JSON n'est pas bon, par défaut jQuery autocomplete cherche la clé "value".
Donc ici, il faut rajouter une ligne dans ton PHP pour dire :
$aTableauFinal'value'] = $aTableauOriginal'name']
En bouclant avec un foreach, pour return ensuite le tableau $aTableauFinal