Я не нашел ничего похожего на эту ситуацию в вопросах. Я работаю над jQuery -приводной формой, которая извлекает информацию из файла XML, использует ее для инициализации формы и затем динамически обновляет форму из XML, когда пользователь делает выбор.
Думайте об этом как XML файл, который содержит записи аудиозаписей. Это может выглядеть следующим образом:
<artists>
<artist name="Artist 1">
<album name="Album 1">
<track title="Song 1">
<track title="Song 2">
</album>
<album name="Album 2">
<track title="Song 1">
<track title="Song 2">
</album>
</artist>
<artist name="Artist 2">
<album name="Album 1">
<track title="Song 1">
<track title="Song 2">
</album>
<album name="Album 2">
<track title="Song 1">
<track title="Song 2">
</album>
</artist>
</artists>
Это файл stati c, полученный с помощью простого URL-адреса. Черт, я бы предпочел, чтобы это был локальный файл, но похоже, что JavaScript больше не будет загружать локальные текстовые файлы c.
Теперь создайте форму HTML с множественным выбором элементы - один для списка исполнителей, один для списка альбомов, один для списка песен. Загрузите файл XML через AJAX, предположительно асинхронно. Инициируйте форму, найдя всех артистов в файле XML и заполнив артистов в списке выбора артистов. Для первого (или по умолчанию) исполнителя заполните список выбора альбомов альбомами только этого исполнителя. Для первого (или по умолчанию) альбома заполните список выбора песен только песнями из этого альбома.
Пока все хорошо. Мы можем сделать это после завершения вызова AJAX.
Я хочу динамически обновлять списки выбора форм из проанализированного XML. Когда пользователь выбирает другого исполнителя, я хочу, чтобы списки выбора альбома и песни были заполнены правильно. Точно так же, когда пользователь выбирает альбом, я хочу, чтобы список песен заполнялся правильно. Это похоже на отображение песни в iTunes.
Подвох в том, что входной файл может быть огромным, и кажется расточительным (и ненужным?) Перезагружать и повторно анализировать файл XML каждый раз, когда пользователь меняет исполнителя или выбор альбома. Я могу сделать это синхронно, но это нет-нет.
Итак, как мне получить доступ к проанализированному XML из виджетов формы через какое-то событие onChange ()?
В конечном итоге, намерение состоит в том, чтобы JavaScript построить строку (ie, URL) из выбранных пользователем. Сама форма не должна быть отправлена на сервер для создания строки, но она должна быть динамической c, чтобы сконструированная строка обновлялась каждый раз, когда изменяется одно из полей выбора. Это легко, но до сих пор я не смог выяснить, как обновить содержимое списков выбора.
Заранее спасибо. Я вполне мог пропустить что-то глупое. Это, конечно, не в первый раз.