public function actionAutocompleteTest() {
$res = array();
if (isset($_GET['term'])) {
// http://www.yiiframework.com/doc/guide/database.dao
$qtxt = "SELECT nazwa FROM tbl_miasta WHERE nazwa LIKE :nazwa and id_wojewodztwo =:id_wojewodztwo";
//$qtxt = "SELECT id FROM tbl_miasta WHERE id = 879";
$command = Yii::app()->db->createCommand($qtxt);
$command->bindValue(":nazwa", '%' . $_GET['term'] . '%', PDO::PARAM_STR);
$command->bindValue(":id_wojewodztwo", 12, PDO::PARAM_INT); //?
//echo $_GET['term'];
$res = $command->queryColumn();
}
echo CJSON::encode($res);
Yii::app()->end();
}
metoda znajduje miasta w konsoli widzę właściwe miasto (gdy stronka działa na localhoscie wszystko śmiga ale gdy wrzucę na serwer np. home.pl autocomplete nie działa nie wyświetla się rezultat w tym polu tekstowy. Gdzie popełniłem błąd że ten autocomplete nie działa?
Czy na home.pl masz włączone automatyczne dodawanie skryptu do statystyk do każdej odpowiedzi? Jeśli tak, to wypluwana przez akcję odpowiedź po odebraniu przez widget nie jest już prawidłowym JSONem.
Tak czy inaczej, co pokazuje Firebug lub podobne narzędzie? Request jest wykonywany? Jak wygląda odpowiedź?
Tak miałem włączone automatyczne dodawanie skryptu do statystyk do każdej odpowiedzi,wystarczyło to odznaczyć i poszło, a mam jeszcze jedno pytanie wybieram z listy rozwijalnej element chciałem jego id zapisać w zmiennej np:
public $moje_id;
// getter
public function getMoje_id() {
return $this->moje_id;
}
// setter
public function setMoje_id($value) {
$this->moje_id = $value;
}
Próbujesz przypisać wartość właściwości kontrolera w jednym żądaniu a potem odczytać ją w kolejnym? Przecież każde przetwarzane żądanie w PHP jest od siebie odizolowane. Mógłbyś zapamiętać to np. w sesji albo bazie danych albo współdzielonym cache ale będziesz miał problem jeśli kilka żądań będzie wywołanych równolegle.
Żeby filtrować wyniki pola autocomplete po wartości listy rozwijanej dodaj tą wartość do żądania odpalanego przez autocomplete. Żeby to zrobić, musisz zamiast url w parametrze source podać funkcję. Odsyłam do dokumentacji jQuery UI Autocomplete.