Как создать связанное поле выбора в колбе без обновления страницы?Jquery

Программирование на jquery
Ответить
Anonymous
 Как создать связанное поле выбора в колбе без обновления страницы?

Сообщение Anonymous »

В настоящее время я работаю над формой адреса, используя wtf, которая содержит страну, штат, город и т. д. В базе данных все настроено с помощью FK.

Код: Выделить всё

class Country(db.Model):
__tablename__ = 'countries'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True)
users = db.relationship('User', backref='countries', lazy='dynamic')
class City(db.Model):
__tablename__ = 'cities'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True)
countries_id = db.Column(db.Integer, db.ForeignKey('countries.id'))
Теперь я пытаюсь добиться эффекта цепочки сортировки выбранных полей, чтобы оптимизировать взаимодействие с пользователем. Желаемый эффект заключается в том, что без выхода или обновления страницы данные поля выбора будут извлекаться в зависимости от предыдущего поля выбора.

Например, пользователь выбирает Австралию в поле «Страна», затем второе Поле выбора штата должно содержать только штаты Австралии.

Я провел небольшое исследование по этой теме и не смог найти удовлетворительного решения. Вот два возможных, но неудовлетворительных решения, которые я нашел.

1. Используйте плагин jQuery, например. Прикованный. Однако этот плагин требует построчного кодирования. Если я приму это решение, будет еще как минимум 400+ строк, и это не очень питонично. Например:

Код: Выделить всё

--
3 series
5 series
6 series
A3
A4
A5

2. Используйте Wtf «Выбрать поля со значениями динамического выбора», что также нежелательно, поскольку оно извлекает данные только один раз в зависимости от значения по умолчанию предыдущего поля выбора. Например: если поле выбора по умолчанию для страны — Австралия, то поле выбора штата будет содержать только штаты внутри Австралии. Когда вы меняете поле выбора страны, скажем, на Америку, поле выбора штата по-прежнему будет содержать только штаты в пределах Австралии. Ниже приведено руководство по этому методу, указанное в документации wtf:

Код: Выделить всё

class UserDetails(Form):
group_id = SelectField(u'Group', coerce=int)

def edit_user(request, id):
user = User.query.get(id)
form = UserDetails(request.POST, obj=user)
form.group_id.choices = [(g.id, g.name) for g in Group.query.order_by('name')]
Из приведенного выше исследования я предполагаю, что удовлетворительное решение должно быть где-то между этими двумя, и оно определенно должно включать некоторый Javascript для мониторинга действий на стороне клиента без отправки запроса на сервер. . Есть ли у кого-нибудь удовлетворительное решение для инфраструктуры flask?

Подробнее здесь: https://stackoverflow.com/questions/259 ... g-the-page
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»