3ий уровень зависимых полей

Тема в разделе "OpenCart", создана пользователем Vadiev Dem, 21 июн 2014.

  1. Vadiev Dem

    Vadiev Dem

    Регистрация:
    25 апр 2014
    Сообщения:
    56
    Симпатии:
    8
    вопрос в том как реализовать зависимые поля Город - Район - Микрорайон что бы от них влиял выбор способа доставки? (Как стандартные Страна и Регион). Понятно, что Страна = Город, Регион = Район, но как быть с 3им уровнем? Сталкивался кто-то?
     
  2. wild_mind

    wild_mind

    Регистрация:
    21 дек 2012
    Сообщения:
    27
    Симпатии:
    2
    У меня была похожая задача. Чтобы при выборе региона подгружалась база нас.пунктов (этого региона), в которые осуществляется доставка/самовывоз. А при выборе нас.пункта, с сервера курьерки загружались варианты.
    Сделал так:
    В модуле Simple (system/library/simple/simple.php) после
    Код:
    if ($field['type'] == 'select' || $field['type'] == 'select_from_api') {
    вставил
    Код:
    if($field['id']=='main_city')
    {
    $html=' 
    <div id="city_select">
    </div>';//сюда будем подгружать нас.пункты
    }
    if($field['id']=='main_zone_id')
    {
                       $html.= '<select id="checkout_customer_main_zone_id" name="checkout_customer[main_zone_id]" onchange="change_reg()">';//change_reg() - будет загружать в city_select нас.пункты
                         $html .= '<option value="">'.$text_select.'</option>';
                        foreach ($field['values'] as $key => $value) {
                            $html .= '<option value="'.$key.'"'.($key == $field['value'] ? ' selected="selected"' : '').'>'.$value.'</option>';
                        }
                    $html .= '</select>';
    }
    Далее в catalog/view/javascript/simplecheckout.js
    Код:
    function change_reg()
    {
            reg_id=$("select#checkout_customer_main_zone_id").val();
            $("#city_select").load("php/get_city.php?zone_id="+reg_id, {limit: 25}, function(){
            simplecheckout_reload("shipping_changed");
            });
    }
    ну и написал get_city.php, который выводил необходимые нас.пункты...
    По аналогии, можно добавить районы города...

    Модуль оплаты тоже нужно допилить, чтобы выдавал данные от города/района..
     
  3. Vadiev Dem

    Vadiev Dem

    Регистрация:
    25 апр 2014
    Сообщения:
    56
    Симпатии:
    8
    Спасибо за ответ, но Вы наверное пользовались Simple 3.x, а версиях 4.х такого нет. Перерыл, но найти не получилось.(