Zastosowałem datePeriodPicker do danych wejściowych w wierszu filtrowania grid grid Yii2. Działa, ale nie działa zaraz po wstawieniu wartości. Musisz ponownie kliknąć wejście i nacisnąć Enter. Inne pola działają dobrze. Czy istnieje sposób, w jaki mogę go zastosować tak samo jak inne dane wejściowe, zaraz po zmianie?Filtrowanie gridview Yii2 z atrybutem dateRangePicker nie będzie stosowane przy zmianie wejścia
Oto skrypt użyłem:
var
dateInput = $("[name='RequestSearch[request_date]']"),
configObject = {
autoClose: true,
language:'ru',
separator: '/',
showShortcuts : true,
shortcuts: {
'next-days': [3,5,7],
'next': ['week','month','year']
},
startOfWeek: 'monday',
};
dateInput.dateRangePicker(configObject);
EDIT 1
Oto RequestSearch.php. dateRangePicker wstawia wartości takie jak "2015-01-05/2015-05-09", więc musiałem utworzyć program obsługi dzielący wartość na $ start_date i $ end_date.
public function rules()
{
return [
[['id', 'KP_id', 'minimal_payment', 'mover_company_id', 'manager_id', 'workers_number', 'workhours', 'payment_additional', 'payment_car', 'payment_sum'], 'integer'],
[['request_date', 'payment_type', 'request', 'request_time', 'quantity', 'request_type', 'address', 'status', 'customer_id', 'comment',], 'safe'],
];
}
$query->andFilterWhere([
'id' => $this->id,
...
]);
if (! is_null($this->request_date) && strpos($this->request_date, '/') !== false) {
list($start_date, $end_date) = explode('/', $this->request_date);
$query->andFilterWhere(['between', 'request_date', $start_date, $end_date]);
$this->request_date = null;
} else {
$query->andFilterWhere(['request_date' => $this->request_date,]);
}
Pokaż mi zasady() funkcja RequestSearch klasy mogą być 'request_date' nie jest masowo przypisane w nim –
myślę, że to oczekiwane zachowanie. Jeśli Twój filtr jest polem tekstowym, formularz nie zostanie przesłany, dopóki go nie przesyłasz, naciskając klawisz Enter. Dlaczego ten niestandardowy sygnał wejściowy powinien być inny? Spróbuj dołączyć program obsługi z 'form.submit()' do zdarzenia 'onChange' swojego wejścia' datePeriodPicker'. – Beowulfenator
@ Heowulfenator, ale inne filtry pola tekstowego są stosowane zaraz po zmianie ich danych wejściowych. Uderzając, wyjdź z naszego kursora myszy. . – Marat