Jquery Autocomplete et Array multi

Par tekyo11, il y a 11 ans


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

2 réponses

nestecha, il y a 11 ans

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

tekyo11, il y a 11 ans

J'ai trouvé la solution si ça interresse quelqu'un :

  • Avec jQuery $("#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']);