Не могли бы вы помочь мне? Я работаю в клиентском CRUD на PHP, JS и AJAX, но я застрял.

Моя проблема в форме редактирования клиента. Когда я нажимаю в редакторе клиента, все данные этого клиента загружаются в форму, кроме одного из двух селекторов выбора. У меня есть два выбора, один для городов (#idprovincia) и другой для зон (#idmunicipio). При нажатии на клиент редактирования, процедура должна быть:

1) Загрузить все города в #idprovincia selectpicker (работает нормально) 2) Загрузить все зоны выбранного города в #idmunicipio selectpicker (работает нормально) 3) Выбрать и показать выбранную зону клиента в #municipio selectpicker. Третий пункт не работает .. Я читал об этом, но я не могу найти правильное решение для меня, поэтому я был бы признателен за вашу помощь.

Я делюсь своим кодом для отображения данных клиента:

     function mostrar(idcliente)
    {
        $.post("../ajax/clientes.php?op=mostrar",{idcliente : idcliente}, function(data, status)
        {
            data = JSON.parse(data);        
            mostrarform(true);
            $("#idpago").val(data.idpago);
            $('#idpago').selectpicker('refresh');
            $("#idprovincia").val(data.idprovincia);
            $('#idprovincia').selectpicker('refresh');      
            $("#idmunicipio").val(data.idmunicipio);
            //$('#idmunicipio').selectpicker('refresh');
            $("#idcliente").val(data.idcliente);
            $("#tlfiscal").val(data.tlfiscal);
            $("#nombre").val(data.nombre);
            $("#zona").val(data.zona);
            $("#telefono").val(data.telefono);
            $("#movil").val(data.movil);
            $("#fax").val(data.fax);
            $("#contacto").val(data.contacto);
            $("#domicilio1").val(data.domicilio1);
            $("#cp").val(data.cp);      
            var provinciaID=data.idprovincia;       
            var municipioID = data.idmunicipio;
            var data = {'provinciaID': provinciaID};

#this ajax sends client ´s ID to another file and gets the list of zones of a city and loads them into (#idmunicipio) selectpicker

                $.ajax({
                        type:'POST',
                        url:'../ajax/clientes.php?op=selectMunicipio',
                        data: data,
                        contentType: "application/x-www-form-urlencoded",
                        success: function(data){
                        $("#idmunicipio").html(data);
                        $('#idmunicipio').selectpicker('refresh');
                        }

                    });

        })         

#now that I have all zones loaded I want to select the client ´s one and show it as selected in the user interface but this code doesn ´t work...
                $("#idmunicipio").val(municipioID);
                $('#idmunicipio').selectpicker('refresh');
    }`
0
Endika Tapia López 31 Авг 2017 в 09:59

3 ответа

Лучший ответ

Как вы можете прочитать из документации

https://silviomoreto.github.io/bootstrap-select/methods/#selectpickerval

Правильный способ сделать это будет

$('.selectpicker').selectpicker('val', 1);

Для нескольких значений вы можете добавить массив значений

$('.selectpicker').selectpicker('val', [1 , 2]);
1
l.g.karolos 31 Авг 2017 в 07:19

Проблема решена:

Две строки в конце должны быть:

        $('#idmunicipio').selectpicker('val', municipioID);
        $('#idmunicipio').selectpicker('refresh');
0
Endika Tapia López 31 Авг 2017 в 08:19

Так, может быть, выбрав опцию, вы могли бы заполнить скрытый ввод фактически выбранным значением?

Используйте on ('change') или addEventListener ('change') для любого из них и заполните ввод выбранной опцией (выберите значение с помощью селектора : selected ).

Надеюсь, это поможет ;)

0
Kuba Wojtach 31 Авг 2017 в 07:07