Ublaboo datagrid resp Form s pouzitim Select2
- pp
- Člen | 50
Ahoj,
pouzivam Ublaboo datagrid, kde pro nektere selecty zkousim pouzit knihovnu
Select2 a mam zjednodusene kod:
$grid->addInlineEdit()->onControlAdd[] = function(Nette\Forms\Container $container){
...
$container->addSelect('partner_id', '')->setPrompt('Vyberte')->setHtmlAttribute('class', 'select2');
...
};
var selectElement = $('#frm-testForm-partner_id');
selectElement.select2({
placeholder: 'Vyberte možnost',
minimumInputLength: 1,
allowClear: true,
width: 'auto',
ajax: {
url: {link getPartners!},
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term
};
},
processResults: function (data) {
return {
results: data.items
};
},
cache: true
}
});
$grid->getInlineEdit()->onSubmit[] = function ($id, Nette\Utils\ArrayHash $values): void {
bdump($values);
};
Prestoze predavam spravne vybranou hodnotu ‘partner_id’ tak po onSubmit
se zobrazi jako NULL (na rozdil od jinych vyberovych polozek – problem mam
jen s tim, na kterym mam poveseny ‘Select2’). Asi to nejak souvisi
s validaci dat v kombinaci s AJAX pozadavkem.
Podobne se mi to chova u obycejneho formulare, kde se k datum dostanu aspon
pomoci ‘getHttpData()’ ale u datagridu nevim jak.
diky za rady
- mskocik
- Člen | 61
Tvoj problem je v tom, ze dany select (v Nette) nema definovane ziadne
$options
. Nette tym padom zahodi danu hodnotu, lebo sa nevyskytuje
v ramci $options
pola, ktore je prazdne defaultne. V beznom
formulari si schopny sa k tej hodnote dostat cez metodu
getRawValue()
. V datagride by _si mal byt_ schopny dostat sa
k tej hodnote takto:
$grid->getInlineEdit()->onSubmit[] = function ($id, Nette\Utils\ArrayHash $values) use($grid) {
$values->partner_id = $grid['filter']['inline_edit']['partner_id']->getRawValue();
// code...
};
Pisem to z hlavy, netestoval som to, ci to bude fungovat