У меня есть 6 полей выбора (sbs), 3 в ряд, поэтому два ряда.Верхние три sbs содержат список опций, которые заполняются через php, данные извлекаются из mysql.Когда опция из каждого поля выбрана, я использую jquery (через ajax), чтобы откатить пункты опций для sb непосредственно под ним и заполнить указанный sb соответствующими данными.Я нажимаю «создать», и данные отправляются через ajax в скрипт php, который затем сохраняет данные в таблице и возвращает подчиненные раскрывающиеся данные (хотя и отформатированные) в таблице под формой.Таким образом, у вас может быть что-то похожее после создания «комбинации».Eveyrthying слева от двоеточия был параметр в верхнем ряду полей выбора, а затем вы выбрали параметры из соответствующего окна, отображаемого справа.
Color: Red | Capacity : 4GB | Model : ABC | EDIT
Color: Blue | Speed: 2GHZ | Capacity : 2GB | EDIT
и т. Д.
Если я хочу отредактировать запись, я нажимаю кнопку «Изменить», и jquery находит идентификатор нажатой кнопки редактирования, передает ее через ajax другому сценарию php, который затем возвращает объект json с соответствующими данными, а затем используется для повторного заполнения выпадающих списков с помощьювыбранные варианты.Пока что все работает отлично.
Моя проблема в том, что только один верхний ряд sbs получает один из вариантов, выбранных при нажатии на правку.Дочерние параметры не выбраны, и я не могу понять, почему.Я могу получить правильные параметры для отображения, но не могу установить выбранное состояние для любого соответствующего значения, возвращаемого в моем объекте json.Я 8 часов пытался это выяснить и пробовал разные вещи на SOverflow и других сайтах, ни один из которых не работал - если честно, я не так уж опыт с javascript / ajax.
После успешного процесса ajaxт. е. успех: я делаю следующее:
var jObj = $.parseJSON(html);
//parentVariations# is the select boxes in the top row where
//Color, capacity, model options are displayed.
//The trigger fires off my ajax function which is responsible for
//populating the corresponding child select box with relevant data.
$('#parentVariations1').val(jObj.groupAttr1).trigger('change');
$('#parentVariations2').val(jObj.groupAttr2).trigger('change');
$('#parentVariations3').val(jObj.groupAttr3).trigger('change');
//childVariations# is the child option box, i have the same code for each child
//box but am only showing the first one here for simplicitys sake.
//What I thought I was doing here is getting each option then if the value
//matches that held in my corresponding json object set that option to selected...
//Doesn't work :'(
$("#childVariations1 option").each(function()
{
if($(this).val() == jObj.childAttr1)
{
$("#childVariations1 option").attr('selected','selected');
}
});
Любая помощь будет приветствоваться, поскольку она заставит меня переступить через край.