我有一个选择字段:
<select class="form-control" name="nacionalidade_id" id="nacionalidade_id">
</select>
这将从ajax接收数据:
$('#nacionalidade_id').select2({
placeholder: 'Selecione o país de nascimento',
ajax: {
url: 'assets/dados/nacionalidade.php',
dataType: 'json',
delay: 250,
processResults: function(data){
return{
results: data
};
},
cache: true
}
});
nacionalidade.php:
$result = mysqli_query($con, "SELECT * FROM nacionalidades where descricao like '%" . $_GET['q'] . "%' limit 20");
$json = [];
if(mysqli_num_rows($result) > 0 ){
while ($nacionalidade = mysqli_fetch_assoc($result)){
$json[] = ['id'=>$nacionalidade['id'], 'text'=>$nacionalidade['descricao']];
}
echo json_encode($json);
}
我想在id = 45
使用jquery时选择该选项。
我尝试:
function buscaCidadao(){
$.ajax({
url: 'assets/funcoesPhp/buscaCidadao.php',
type: 'get',
dataType: 'json',
contentType: 'application/json',
data: {'cns': $('#cns').val()},
success: function (data) {
$("#nacionalidade_id").val(45).change();
},
});
}
但这是行不通的。有想法吗?
存在以下代码:https://select2.org/programmatic-control/add-select-clear-items#preselecting-options-in-an-remotely-sourced-ajax-select2,但我无法适应我的代码。任何帮助。
答案 0 :(得分:1)
尝试
$('#nacionalidade_id').val('45');
$('#nacionalidade_id').trigger('change');
请参阅https://select2.org/programmatic-control/add-select-clear-items#selecting-options
上的select2文档答案 1 :(得分:0)
解决方案是创建一个新的otpion:
var data = {
id: 45,
text: 'TEXT DESCRIPTION'
};
var newOption = new Option(data.text, data.id, false, false);
$('#nacionalidade_id').append(newOption).trigger('change');