Я разобрался.
Дополнительный параметр, добавленный в поле action формы приезжает не просто отдельно, он приходит в команде, предназначенной для всего модуля, а не отдельной строки. Тут вот какая проблема: динамическая таблица - это некий мозг, обладающий любопытной фишкой: он на каждую строку таблицы умеет при последующем submit сделать отдельную команду. Достигает он этого тем, что при генерации таблицы особым образом подхакивает name у элементов формы обнаруженных внутри таблицы. А значения всех полей вне таблицы при этом же submit приезжают как обычно, для всей формы целиком. Отсюда мораль - сейчас, алгоритм разделения пришедших к серверу значений формы не может догадаться, что param3 относился не к общим параметрам формы, а к каждой строчке таблицы. Знание об этом нивелировал браузер пока формулировал ответ ;). action обрабатывается особо - поэтому он и есть у каждой команды. Чтобы какое-то значение приезжало для каждой строчки таблицы - можно запинуть его в hidden в строке (соотв. он размножится на всю таблицу), а можно закодировать в урле ибо если форма имеет урл "/a", в таблице в optionlist сказано '/b' (суффикс который добавляется к a, чтобы сделать woo-list), то на каждую строку будет приходить команда с урлом /a/b/<name>. И этот 'b' можно использовать как 'параметр'. Второй способ применяется в alterator-bind. 18.03.08, Vitaly Ostanin<[EMAIL PROTECTED]> написал(а): > Здравствуйте. > > Есть форма (в аттаче) с таблицей объектов. Пытаюсь сделать удаление > отмеченных. > > Отладка показывает, что в бакенд отдаётся 3 action delete: > > amanda: params[action]: delete > amanda: params[delete]: #t > amanda: params[language]: ru_RU;en_US > amanda: params[_objects]: DailySet1disklist/localhost/etc > amanda: ==========: ========== > amanda: params[action]: delete > amanda: params[delete]: #t > amanda: params[language]: ru_RU;en_US > amanda: params[_objects]: DailySet1disklist/localhost/usr > amanda: ==========: ========== > amanda: params[action]: delete > amanda: params[language]: ru_RU;en_US > amanda: params[type]: disklist > amanda: params[_objects]: DailySet1 > > Почему params[type] передаётся только в последнем? По нему удобно > различать delete для разных объектов. > > Как можно сделать явную передачу значений hostname и diskname в > бакенд при удалении объекта? Эвристика с разбором _objects не нравится. > > alterator-3.1-alt6 > alterator-ahttpd-0.2-alt1 > alterator-fbi-0.16-alt3 > > > -- > Regards, Vyt > mailto: [EMAIL PROTECTED] > JID: [EMAIL PROTECTED] > > <form method="POST" action="?action=delete&type=disklist" > highlight-required="no"> > <h2><span translate="_">Add disk to backup list</span></h2> > <table class="frame-table disklist"> > <thead> > <tr> > <th> </th> > <th><label for="hostname">Host name</label></th> > <th><label for="diskname">Disk</label></th> > <th><label for="dumptype">Dump type</label></th> > </tr> > </thead> > <tbody optionlist="disklist" class="alterator-list"> > <tr> > <td><input type="checkbox" name="delete"/></td> > <td nowrap="yes"><span class="alterator-label" > name="hostname"></span></td> > <td nowrap="yes"><span class="alterator-label" > name="diskname"></span></td> > <td nowrap="yes"><span class="alterator-label" > name="dumptype"></span></td> > </tr> > </tbody> > </table> > <input type="submit" value="Remove selected" class="btn"/> > </form> > > _______________________________________________ > devel-conf mailing list > [email protected] > https://lists.altlinux.org/mailman/listinfo/devel-conf > > _______________________________________________ devel-conf mailing list [email protected] https://lists.altlinux.org/mailman/listinfo/devel-conf
