[Devel-conf] alterator: удаление отмеченных объектов из таблицы
Vitaly Ostanin
=?iso-8859-1?q?vyt_=CE=C1_altlinux=2Eorg?=
Чт Мар 20 20:10:45 MSK 2008
Stanislav Ievlev пишет:
> Я разобрался.
>
> Дополнительный параметр, добавленный в поле action формы приезжает не
> просто отдельно, он приходит в команде, предназначенной для всего
> модуля, а не отдельной строки.
>
> Тут вот какая проблема: динамическая таблица - это некий мозг,
> обладающий любопытной фишкой: он на каждую строку таблицы умеет при
> последующем submit сделать отдельную команду. Достигает он этого тем,
> что при генерации таблицы особым образом подхакивает name у элементов
> формы обнаруженных внутри таблицы. А значения всех полей вне таблицы
> при этом же submit приезжают как обычно, для всей формы целиком.
> Отсюда мораль - сейчас, алгоритм разделения пришедших к серверу
> значений формы не может догадаться, что param3 относился не к общим
> параметрам формы, а к каждой строчке таблицы. Знание об этом
> нивелировал браузер пока формулировал ответ ;). action обрабатывается
> особо - поэтому он и есть у каждой команды.
>
> Чтобы какое-то значение приезжало для каждой строчки таблицы - можно
> запинуть его в hidden в строке (соотв. он размножится на всю таблицу),
> а можно закодировать в урле ибо если форма имеет урл "/a", в таблице
> в optionlist сказано '/b' (суффикс который добавляется к a, чтобы
> сделать woo-list), то на каждую строку будет приходить команда с урлом
> /a/b/<name>. И этот 'b' можно использовать как 'параметр'.
> Второй способ применяется в alterator-bind.
Сделал <input type="hidden" name="..."> рядом со <span
type="alterator-label" name="..."/>. Вроде бы работает, как надо, но
теперь action delete приходит для каждой строки таблицы, независимо
от того, отмечена ли она. Для отмеченных выставляется
params[delete]: #t, см. лог ниже.
По-моему, раньше в бакенд передавались только отмеченные строки. Я,
конечно, могу добавить проверку на params[delete], но другие модули
сломаются. Или я что-то путаю?
Стоит alterator-fbi из git (тот, что в Сизифе, неправильно передаёт
url из динамической таблицы в бакенд).
March 20 20:03:45 amanda: params[dumptype]: comp-root-tar
March 20 20:03:45 amanda: params[action]: delete
March 20 20:03:45 amanda: params[language]: ru_RU;en_US
March 20 20:03:45 amanda: params[hostname]: localhost
March 20 20:03:45 amanda: params[_objects]:
DailySet1/disklist/localhost/etc
March 20 20:03:45 amanda: params[diskname]: /etc
March 20 20:03:45 amanda: ==========: ==========
March 20 20:03:45 amanda: params[dumptype]: NO-COMPRESS
March 20 20:03:45 amanda: params[action]: delete
March 20 20:03:45 amanda: params[delete]: #t
March 20 20:03:45 amanda: params[language]: ru_RU;en_US
March 20 20:03:45 amanda: params[hostname]: localhost
March 20 20:03:45 amanda: params[_objects]:
DailySet1/disklist/localhost/tmp
March 20 20:03:45 amanda: params[diskname]: /tmp
March 20 20:03:45 amanda: ==========: ==========
March 20 20:03:45 amanda: params[dumptype]: NO-COMPRESS
March 20 20:03:45 amanda: params[action]: delete
March 20 20:03:45 amanda: params[language]: ru_RU;en_US
March 20 20:03:45 amanda: params[hostname]: localhost
March 20 20:03:45 amanda: params[_objects]:
DailySet1/disklist/localhost/usr
March 20 20:03:45 amanda: params[diskname]: /usr
March 20 20:03:45 amanda: ==========: ==========
March 20 20:03:45 amanda: params[action]: delete
March 20 20:03:45 amanda: params[language]: ru_RU;en_US
March 20 20:03:45 amanda: params[type]: disklist
March 20 20:03:45 amanda: params[_objects]: DailySet1
<skipped/>
--
Regards, Vyt
mailto: vyt на altlinux.org
JID: vitaly.ostanin на gmail.com
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : signature.asc
Тип : application/pgp-signature
Размер : 252 байтов
Описание: OpenPGP digital signature
Url : <http://lists.altlinux.org/pipermail/devel-conf/attachments/20080320/b05ac737/attachment-0002.bin>
Подробная информация о списке рассылки devel-conf