Как заполнить динамически генерируемые поля выбора с помощью ajax - PullRequest
0 голосов
/ 22 января 2010

Мне не удалось найти решение для конкретной проблемы, с которой я столкнулся в этом проекте. Мне нужно следующее: динамически добавлять строки в таблицу, содержащую два блока выбора И использовать ajax для автоматического заполнения параметров выбора во втором блоке выбора на основе значения первого блока выбора ... в соответствующей строке таблицы (это было динамически добавлено на лету некоторыми js).

Все еще со мной?

Я легко могу динамически заполнить раскрывающийся список выбора, используя ajax / javascript, основываясь на значении первого раскрывающегося списка в первой строке. Я даже могу заполнить три или более блока выбора в одной строке, используя функции ajax / js для загрузки каждого дополнительного выбора. Но это не моя цель.

Вот что у меня есть ... Моя форма содержит простую таблицу с 3 столбцами. Первый - это флажок, второй - поле выбора «Штат», а третий столбец - поле выбора «Город». У меня есть две кнопки над таблицей, которые позволяют мне «Добавить строку» и «Удалить строку». Напомним, что первая строка (которая запрограммирована) идеально подходит для загрузки названий городов штата с помощью ajax.

После нажатия кнопки «Добавить строку» я могу динамически создать вторую строку, которая содержит флажки, поля выбора штата и поля выбора города. Выбор состояния заполняется на основе содержимого innerHTML исходного столбца, но выбор города, очевидно, является нулевым, поскольку он ожидает, что ajax заполнит его. Примечание: имена и имена этих полей являются итеративными ... city_id, city_id_1, city_id_2, city_id_3 и т. Д., Поэтому у меня есть эта уникальность для работы.

Моя проблема заключается в том, что когда я выбираю состояние из 2-й или 3-й (и т. Д.) Строк, изменяется только выбор первого города. Зачем? Потому что функция обработки js / ajax говорит, что она работает только с элементом с именем city_id !! Который является названием поля выбора города в первом ряду.

Я (пока) не нашел способа динамически передать имя элемента, который мне нужно обновить, в функцию onreadystate ajax. Когда мне нужно было заполнить два или три поля выбора подряд (в одной строке), мне нужно было иметь дополнительные ajax-функции для каждого раскрывающегося списка - которые статичны, имейте в виду ... но что, если я создаю элемент динамически Я не могу предварительно запрограммировать столько функций на своей странице ... или я должен?

Если у вас есть идеи, как этого добиться, я был бы чертовски признателен !!!

Спасибо!

1 Ответ

0 голосов
/ 22 января 2010
var i=1; // put here the number of the column being added now.
var x=document.getElementById("city_id_"+i);
// populate x
...