PHP 配列をビューに渡してから、その配列を使用して jQuery オートコンプリートを作成しようとしています。
foreach ($products as $product)
{
$productsArray[] = array('label' => $product->getName() ,'id' => $product->getId() , 'value' => $product->getUrlSafeName());
}
$productsJson = json_encode($productsArray);
$productsJson
ビューに渡され、DOM に挿入します。テンプレートエンジンとして Twig を使用しています。
<div id="autocompleteData">{{ productsJson }}</div>
そして私のjQuery:
$( document ).ready(function() {
var autocompleteData = $('#autocompleteData').text();
$('#findoffice_location').autocomplete({
source: autocompleteData,
change: function (event, ui) { } });
});
console.log autocompleteData の場合、構造上は JSON オブジェクトのように見えますが、そうではありません。
私が行った場合:
var autocompleteData = [{"label":"Toybox","id":1,"value":"toybox"},{"label":"Shoe","id":2,"value":"shoe"},{"label":"Eggs","id":3,"value":"eggs"}];
次に consolelog 、各 autocompleteData 製品は適切な JSON オブジェクトであり、オートコンプリートは期待どおりに機能します。