的问题,可以通过以下步骤解决:
<select id="mySelect" multiple="multiple">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<script>
$(document).ready(function() {
$('#mySelect').select2({
ajax: {
url: 'your_ajax_endpoint',
dataType: 'json',
processResults: function(data) {
return {
results: data
};
}
}
});
});
</script>
在上述代码中,your_ajax_endpoint
是你的后端处理AJAX请求的URL,它应该返回一个包含选项数据的JSON数组。
public function handleAjaxRequest()
{
$data = [
['id' => 1, 'text' => 'Option 1'],
['id' => 2, 'text' => 'Option 2'],
['id' => 3, 'text' => 'Option 3']
];
echo json_encode($data);
exit;
}
在上述代码中,$data
是一个包含选项数据的数组,你可以根据实际需求从数据库或其他数据源中获取数据。
your_ajax_endpoint
映射到上述后端方法。例如:$router->addRoute('GET', 'your_ajax_endpoint', 'YourController:handleAjaxRequest');
确保将YourController
替换为你的实际控制器类名。
change
事件中实现这个功能。例如:$('#mySelect').on('change', function() {
var selectedValues = $(this).val();
$.ajax({
url: 'your_backend_handler',
type: 'POST',
data: { selectedValues: selectedValues },
success: function(response) {
console.log(response);
}
});
});
在上述代码中,your_backend_handler
是你的后端处理选中值的URL,你可以在后端方法中将选中的值存储到数据库或进行其他操作。
通过以上步骤,你可以在nette中通过AJAX使用带有数据的select2插件进行多选,并将选中的值发送到后端进行处理。如果没有选中任何值,后端将返回一个空数组作为结果。
领取专属 10元无门槛券
手把手带您无忧上云