Автозаполнение пользовательского интерфейса JQuery с Zend Framework
Мне было интересно, как добавить виджет автозаполнения JQuery UI в форму, которую я разрабатываю в Zend Framework без использования ZendX. Папки для сайта настроены в соответствии с фреймворком, но я не использую Zend_Form.
Итак, я сократил все до самой простой формы, которая работает:
<script>
$(document).ready(function() {
$("input#autocomplete").autocomplete({
source: ["best", "buy"]
});
});
</script>
<input id="autocomplete" />
Но у меня есть файл PHP, который возвращает записи из базы данных в формате JSON. Как я могу использовать это вместо этого? Я попытался заменить массив с именем файла, но тогда ничего не происходит. Спасибо!
1 ответ
Решение
Это должно работать для вас:
// js stuff
$( "input#autocomplete" ).autocomplete({
source: "http://localhost/application/index/autocomplete"
});
//IndexController.php
/**
* Return AutoComplete stuff
*/
public function autocompleteAction()
{
// disable view and layout, we want some fanzy json returned
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$values = array('best', 'buy');
$valuesJson = Zend_Json::encode($values);
echo $valuesJson;
}
Вы можете передать BaseUrl вашему скрипту (вместо использования полного пути)
//layout.phtml
<script type="text/javascript">
var baseUrl = "<?= $this->baseUrl(); ?>";
</script>
Так что вы могли бы сделать:
source: baseUrl + "/index/autocomplete"