Pytanie w sprawie autocomplete, zend-framework, jquery – Autouzupełnianie interfejsu użytkownika JQuery za pomocą Zend Framework

4

Zastanawiałem się, jak dodać widget autouzupełniania JQuery UI do formularza, który rozwijam w Zend Framework bez użycia ZendX. Foldery dla witryny są konfigurowane według frameworka, ale nie używam Zend_Form.

Więc rozebrałem wszystko do najprostszej formy, która działa:

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

<input id="autocomplete" />

Ale mam plik PHP, który zwraca wpisy z bazy danych w JSON. Jak zamiast tego użyć? Próbowałem zastąpić tablicę nazwą pliku, ale potem nic się nie dzieje. Dzięki!

Po wyświetleniu źródła renderowanegoZend_From strona wygląda na ścieżkę do pliku js jest poprawna? Michael Irey
Proszę podać przykładowy kod, jeśli możesz. Kevin Bedell
Czy masz jakieś błędy JavaScript w przeglądarce? drew010
Nie sądzę. Strony ładują się tak samo jak poprzednio. : / user

Twoja odpowiedź

1   odpowiedź
3

powinno to działać dla ciebie:

// 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;
}

Możesz jednak przekazać BaseUrl do swojego skryptu (zamiast używać pełnej ścieżki)

//layout.phtml
<script type="text/javascript">
var baseUrl = "<?= $this->baseUrl(); ?>";
</script>

Więc możesz zrobić:

source: baseUrl + "/index/autocomplete"
Dziękuję Ci! :) Myślę, że wypisanie całej ścieżki źródłowej było dobrym pomysłem! user

Powiązane pytania