Установить значения для зависимых выпадающих в режиме редактирования php - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть следующие зависимые выпадающие списки в веб-приложении.Используется для сохранения предметов в системе POS.Категории товаров зависят от выбранной компании.Я заполняю список категорий в соответствии с событием изменения списка компаний.При создании элемента все в порядке, так как категории заполняются в соответствии с выбранной компанией.

    <select name="company" id="company" class="form-control" required="required">
    <option value="">- Select Company -</option>
    <?php
    $datavalues = new dataValues();
    if(isset($user_company[0]['id'])) $datavalues->id = $user_company[0]['id'];
    $datavalues->status=1;
    $datavalues->order="name ASC";
    $data = $company_class->get_companies($datavalues);
    if(isset($data['result']) && $data['result']==true){
        foreach($data['result'] as $company){
            echo '<option value="'.$company['id'].'">'.$company['name'].'</option>';
        }
    }
    ?>
    </select>


    <select name="category" id="category" class="form-control" required="required">
        <option value="">- Select Category -</option>
    </select>

это ajax-запрос для заполнения категорий с помощью HTML

    $('#company').change(function(){
        var company_id = $('#company').val();
        if(company_id.length>0 && company_id!='' && company_id!=null){
            // Get Categories
            $.ajax({
                url : "ajax/categories/get_select_categories.php",
                cache: false,
                type: 'POST',  
                data: { 'company_id':company_id },                  
                success : function(data) {
                    $('#addItem #category').html(data);
                },
                error: function(data) {
                    console.log("Failed to get category list for select ! " + data);
                }
            });
        }
    });

Теперь, когда я хочу редактироватьПри отправке записи я передаю сохраненные данные обратно в форму HTML и устанавливаю выбранные значения.Ниже приведен Ajax-запрос для этого.

    function editItem(id) {
        $.ajax({
        url : "ajax/items/edit_item.php",
        cache: false,
        data: {'id':id},
        type: 'POST',                  
        success : function(data) {
            var arr = data.split("|");
            if(arr[0]=="success") {
                $('#addItem #edit_id').val(id);
                $('#addItem #company').val(arr[1]).change();
                var category = arr[5];

                // Get Categories
                $.ajax({
                    url : "ajax/categories/get_select_categories.php",
                    cache: false,
                    type: 'POST',  
                    data: { 'company_id':company_id },                  
                    success : function(data) {
                        $('#addItem #category').html(data);
                        $('#addItem #category').val(category).change();
                    },
                    error: function(data) {
                        console.log("Failed to get category list for select ! " + data);
                    }
                });

            }
            else {
                $('#errorMessage').html(arr[0]);
                $('#errorModal').modal();
            }
        },
        error: function(data) {
            $('#errorMessage').html("Internal problem detected, Please try again later !");
            $('#errorModal').modal();
        }
       });
    }

Проблема в том, что, когда я устанавливаю значение для компании, она вызывает функцию в событии изменения списка компаний.Итак, загрузка категорий в соответствии с заданным значением списка компаний.Из-за этого я не могу установить сохраненное значение списка категорий.(Я не знаю, как определить время окончания времени заполнения списка категорий, если я знаю его, я могу установить выбранную категорию после этого)

Есть ли что-нибудь легкое для этого?Или где я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...