Изменить значение ajax select2 с помощью jquery

У меня есть поле выбора:

<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
    }
});

Националидаде.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, но я не могу адаптировать его для своего кода. Любая помощь.

попробуйте $("#nacionalidade_id").val(45).change();

LahiruTM 10.02.2019 19:16

@LahiruTM не работает

Italo Rodrigo 10.02.2019 19:19

Как вы это устанавливаете. Поскольку я использую этот метод, когда хочу отредактировать уже сохраненную строку, нажав кнопку «Редактировать», чтобы установить сохраненные данные в форму редактирования перед ее сохранением, он работает отлично.

LahiruTM 10.02.2019 19:23

как видите здесь работает

gaetanoM 10.02.2019 19:28

@LahiruTM Я редактирую свой пост, чтобы вы видели

Italo Rodrigo 10.02.2019 19:29

проверьте свои версии select2 и jquery. Также проверьте консоль javascript вашего браузера на наличие ошибок и предупреждений. В противном случае ваш код в порядке.

LahiruTM 10.02.2019 19:45

@LahiruTM select2 4.0.6 / jquery 3.3.1.min / без ошибок или предупреждений на консоли

Italo Rodrigo 10.02.2019 19:48

Я нашел эту ссылку select2.org/programmatic-control/…, но не могу адаптироваться к своему коду. Любая помощь?

Italo Rodrigo 10.02.2019 20:17
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
8
56
2

Ответы 2

Пытаться

$('#nacionalidade_id').val('45'); 
$('#nacionalidade_id').trigger('change');

См. документы select2 по адресу https://select2.org/programmatic-control/add-select-clear-items#selecting-options.

Не работает, читая ссылку я нашел этот select2.org/programmatic-control/… но я не могу создать код

Italo Rodrigo 10.02.2019 20:16

Решение состоит в том, чтобы создать новую опцию:

var data = {
    id: 45,
    text: 'TEXT DESCRIPTION'
};
var newOption = new Option(data.text, data.id, false, false);
$('#nacionalidade_id').append(newOption).trigger('change');

Другие вопросы по теме