#1176 closed дефект (готово)
Не отбражается список изделий после манипуляций с фильтрами
Reported by: | alx | Owned by: | Denis_N |
---|---|---|---|
Priority: | major | Component: | БД изделий АДС |
Keywords: | Cc: |
Description
В r216/base после некоторых (на мой взгляд, совершенно безобидных) действий перестает отображаться список изделий. Делал следующее:
- Открыл главную страницу.
- Кликнул "Показать фильтры".
- В строке "Комбинирование таблиц" кликнул "Выбрать столбцы для отображения".
- В появившемся списке отметил чекбокс "Тип записи".
- Нажал Enter.
- В открывшейся странице кликнул заголовок столбца "Тип записи" (изменил сортировку).
- Кликнул заголовок столбца "№".
- Кликнул "Показать фильтры".
- В строке "Комбинирование таблиц" кликнул "Выбрано: 1".
- В появившемся списке снял отметку с чекбокса "Тип записи".
- Нажал Enter.
В результате получил страницу с сообщением об ошибке: "Ошибка запроса в Продукты1: mysqli_queryUnknown column 'history.type_write' in 'order clause'".
Ожидалось, что вместо сообщения об ошибке отобразится список изделий.
Change History (11)
follow-up: 2 comment:1 by , 18 months ago
follow-up: 3 comment:2 by , 18 months ago
Replying to Denis_N:
Для того, чтобы воспроизвести - нужно на главной нажать "Показать фильтры", в строке "Комбинирование таблиц" кликнуть на "Выбрать столбцы для отображения", выбрать столбец из "Истории" и нажать Enter.
После того, как это сделано кликнуть на заголовок столбца из Истории, чтобы применить сортировку. И после применения сортировки заново раскрыть фильтры, в комбинировании таблиц снять галочку с пункта для отображения из истории и далее:
-в Chrome нажать в любое место, кроме окна комбинирования таблиц, снова раскрыть окно и кликнуть Enter
-в Firefox достаточно нажать Enter
У меня таким образом не воспроизводилось. Требовалось непременно второй раз кликать по заголовку...
comment:3 by , 18 months ago
Replying to alx:
У меня таким образом не воспроизводилось. Требовалось непременно второй раз кликать по заголовку...
А сейчас проверил - воспроизводится... Вероятно, я ошибся в каком-то действии когда писал тикет...
follow-up: 5 comment:4 by , 18 months ago
Выяснил, что форма отправляется по разному, когда к нажатию Enter привязано событие submit(). А дальше, скорее всего браузеры, по разному себя ведут. Один при определенных условиях отправляет форму, а другой при этих же условиях (когда не выбраны чекбоксы) обновляет страницу
По привязка события к нажатию Enter обусловлена тикетом #1079, поэтому его не убрать. А залазить в дебри того, как каждый браузер реагирует займет длительное время.
Решение в r265/base устраняет баг, описанный в этом тикете и на этом тикет предлагаю закрыть
follow-ups: 6 7 comment:5 by , 18 months ago
Replying to Denis_N:
Выяснил, что форма отправляется по разному, когда к нажатию Enter привязано событие submit(). А дальше, скорее всего браузеры, по разному себя ведут. Один при определенных условиях отправляет форму, а другой при этих же условиях (когда не выбраны чекбоксы) обновляет страницу
Хм... Как это? То есть после отправки формы страница не обновляется? Браузер отправил запрос, получил ответ с новой страницей - а отображать продолжает старую? :)
на этом тикет предлагаю закрыть
??? Кому ты это предлагаешь? :) Владелец тикета - ты. Разработчик - тоже ты. Почему ты предлагаешь закрыть тикет кому-то другому? Почему не закрываешь его сам?
follow-up: 9 comment:6 by , 18 months ago
Replying to alx:
Replying to Denis_N:
Выяснил, что форма отправляется по разному, когда к нажатию Enter привязано событие submit(). А дальше, скорее всего браузеры, по разному себя ведут. Один при определенных условиях отправляет форму, а другой при этих же условиях (когда не выбраны чекбоксы) обновляет страницу
Хм... Как это? То есть после отправки формы страница не обновляется? Браузер отправил запрос, получил ответ с новой страницей - а отображать продолжает старую? :)
Я не правильно выразился. При одном исходе значения в переменной POST отсутствуют совсем, словно страницу открыли в первые, при другом значения есть
comment:7 by , 18 months ago
??? Кому ты это предлагаешь? :) Владелец тикета - ты. Разработчик - тоже ты. Почему ты предлагаешь закрыть тикет кому-то другому? Почему не закрываешь его сам?
Понял. Закрываю
comment:8 by , 18 months ago
Resolution: | → готово |
---|---|
Status: | new → closed |
comment:9 by , 18 months ago
Replying to Denis_N:
Я не правильно выразился. При одном исходе значения в переменной POST отсутствуют совсем, словно страницу открыли в первые, при другом значения есть
А, теперь понял. Действительно, при запросе из chrome сервер зачем-то возвращал переадресацию на clearmain.php (который опять возвращал переадресацию на main.php), в результате которой POST превращался в GET... Но я не могу понять, каким образом в r265/base это было устранено. Я не вижу там ничего, что могло бы быть связано с переадресацией. Не ошибся ли ты с номером коммита?
comment:10 by , 17 months ago
В r256/base было устранено получение ошибки после манипуляции с фильтрами. Ошибка возникала из-за того, что после нажатия Enter и перезагрузки страницы, если не выбраны чекбоксы в "Комбинировании таблиц", сохранялась в переменной $_POST сохранялось значение, которого не должно было быть
In 265/base: