Использование php массива в автозаполнении материализации - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь инициализировать материализовать автозаполнение , используя простой массив PHP ($ keysArray). Я конвертирую массив PHP в Javascript, используя json_encode, но по некоторым причинам ниже не работает. Выпадающий список автозаполнения просто не появляется - он работает только тогда, когда я набираю ключи напрямую, как в примере в ссылке MaterializeCSS в разделе «Инициализация».

var tempArray = <?php echo json_encode($keysArray); ?>;
const ac = document.querySelector('.autocomplete');
  M.Autocomplete.init(ac, {
    source: tempArray;
  });

Ниже приведена копия структуры массива:

  $keysArray = array (
    "Test1",
    "Test2",
    "Test3"
  );

Ответы [ 2 ]

0 голосов
/ 07 августа 2019

Я написал небольшой фрагмент для преобразования массива в объект формата {"test1": null, "test2": null}.

myObjectForAutocomplete =  myArray.reduce((obj, item) => {
  obj[item['oneOfYourPropertiesFromArrayItem']] = null
  return obj
}, {});
0 голосов
/ 25 января 2019

Согласно информации инициализации, вы должны использовать данные, а не источник.

var tempArray = <?php echo json_encode($keysArray); ?>;
    const ac = document.querySelector('.autocomplete');
    M.Autocomplete.init(ac, {
      data: tempArray;
    });

Также они используют объект, а не массив:

$keysArray = {
    "Test1" : null,
    "Test2" : null,
    "Test3" : null
  };
...