使用Zend Framework进行JQuery UI自动完成

时间:2012-06-12 18:36:50

标签: jquery zend-framework autocomplete

我想知道如何在不使用ZendX的情况下将自动完成的JQuery UI小部件添加到我在Zend Framework中开发的表单中。网站的文件夹是根据框架设置的,但我没有使用Zend_Form。

所以我把所有东西都剥离到了最简单的形式,它起作用了:

<script>
  $(document).ready(function() {
    $("input#autocomplete").autocomplete({
    source: ["best", "buy"]
});
  });
  </script>

<input id="autocomplete" />

但我有一个PHP文件,它以JSON方式返回数据库中的条目。我该如何使用呢? 我尝试用文件名替换数组,但没有任何反应。 谢谢!

1 个答案:

答案 0 :(得分:3)

这应该适合你:

// 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"