web2py: обнаружение изменений в выпадающем виджете - PullRequest
0 голосов
/ 24 января 2019

Как мы можем обнаружить изменение из выпадающего виджета, чтобы можно было выполнить код?

Таблица loan Таблица ссылок services. Оба имеют поле с именем interest_rate. Когда я изменяю loan.service через выпадающий список, я хотел бы отразить соответствующую interest_rate от services таблицы до loan таблицы.

Как этого достичь?

модель

db.define_table('services',
                Field('service_name',requires=[IS_NOT_EMPTY(),IS_NOT_IN_DB(db,'services.service_name')]),
                Field('service_type','reference service_types',requires=IS_IN_DB(db,db.service_types.id,
                                                                                '%(type_name)s',
                                                                                error_message='not in table',
                                                                                zero=None),
                                                                                ondelete='RESTRICT',
                                                                                ),
                Field('interest_rate','decimal(15,2)',requires=IS_DECIMAL_IN_RANGE(0,100)),
                Field('max_term','integer'),
                auth.signature,
                format='%(service_name)s',
    )

db.define_table('loan',
    Field('service','reference services',requires=IS_IN_DB(db,db.services.id,
                                            '%(service_name)s',
                                            error_message='not in table',
                                            zero=None),
                                            ondelete='RESTRICT',),
    Field('member_id','reference members',requires=IS_IN_DB(db,db.members.id,
                                            '%(member_name)s',
                                            error_message='not in table',
                                            zero=None),
                                            ondelete='RESTRICT',
                                            label='Member'),
    Field('amount','decimal(15,2)',requires=IS_DECIMAL_IN_RANGE(1000)),
    Field('interest_rate','decimal(6,2)',default=10),
    )   

1 Ответ

0 голосов
/ 01 февраля 2019

Используя javascript во внешнем интерфейсе. Например, используя библиотеку jquery:

$("select").on("change", function(){

    var selected = $(this).val();

    $.ajax({
        url: "/get_rates",
        data:{
            "selected": selected
        },
        success: function(value_from_url){
            $("div").text(value_from_url);
        }
    });
});
...