[Помогите] Создать доп. связанный список select

Тема в разделе "OpenCart", создана пользователем Amilo, 27 апр 2015.

  1. Amilo

    Amilo

    Регистрация:
    5 июн 2013
    Сообщения:
    1
    Симпатии:
    0
    Здравствуйте.
    Помогите создать дополнительный связанный выпадающий список.
    Мне нужно реализовать так, чтобы кроме Страны и Региона можно еще и выбрать связанный список городов, который подтягивается после выбора региона.
    Базу данных для городов создал, на основе списка регионов в админке создал список городов (за аналог controller,model и view взял из файла region), который можно в админке добавить, изменить или удалить. Теперь мне нужно реализовать связанный выпадающий список при добавлении покупателя в админке.
    В меню админки при выборе ПРОДАЖИ - ПОКУПАТЕЛИ - ПОКУПАТЕЛИ при добавлении нового покупатели вы создаете адрес. Там мне нужно кроме выбора Страны и Региона выбрать при выборе региона отобразить выпадающий список городов.
    В файле шаблона customer_form.tpl сделал список select, но не подтягивает список городов при выборе региона. Но поэтому нужно править скрипт внизу файла. Правил его и изменял, пробовал его дублировать изменив на свои переменные но не получается. Помогите решить. Многим этот пост поможет чтобы себе могли добавить еще один выпадающий список.

    Вот сам кусок скрипта:
    PHP:
    <script type="text/javascript"><!--
    function country(element, index, zone_id) {
      if (element.value != '') {
            $.ajax({
                url: 'index.php?route=sale/customer/country&token=<?php echo $token?>&country_id=' + element.value,
                dataType: 'json',
                beforeSend: function() {
                    $('select[name=\'address[' + index + '][country_id]\']').after('<span class="wait">&nbsp;<img src="view/image/loading.gif" alt="" /></span>');
                },
                complete: function() {
                    $('.wait').remove();
                },           
                success: function(json) {
                    if (json['postcode_required'] == '1') {
                        $('#postcode-required' + index).show();
                    } else {
                        $('#postcode-required' + index).hide();
                    }
                   
                    html = '<option value=""><?php echo $text_select?></option>';
                   
                    if (json['zone'] != '') {
                        for (i = 0; i < json['zone'].length; i++) {
                            html += '<option value="' + json['zone'][i]['zone_id'] + '"';
                           
                            if (json['zone'][i]['zone_id'] == zone_id) {
                                html += ' selected="selected"';
                            }
           
                            html += '>' + json['zone'][i]['name'] + '</option>';
                        }
                    } else {
                        html += '<option value="0"><?php echo $text_none?></option>';
                    }
                   
                    $('select[name=\'address[' + index + '][zone_id]\']').html(html);
                },
                error: function(xhr, ajaxOptions, thrownError) {
                    alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
                }
            });
        }
    }

    $('select[name$=\'[country_id]\']').trigger('change');
    //--></script>