call($this, $this->row); } $this->addScript($refresh); $optionsHtml = ''; foreach ($options as $option => $text) { $selected = (string) $option === (string) $this->value ? 'selected' : ''; $optionsHtml .= ""; } return << EOT; } protected function url() { return $this->resource().'/'.$this->getKey(); } protected function addScript($refresh) { $script = <<selector}').off('change').select2().on('change', function(){ var value = $(this).val(), name = $(this).data('name'), url = $(this).data('url'), data = { _method: 'PUT' }, reload = '{$refresh}'; if (name.indexOf('.') === -1) { data[name] = value; } else { name = name.split('.'); data[name[0]] = {}; data[name[0]][name[1]] = value; } Dcat.NP.start(); $.ajax({ url: url, type: "POST", data: data, success: function (data) { Dcat.NP.done(); Dcat.success(data.message); reload && Dcat.reload(); } }); }); JS; Admin::script($script); } }