Фильтровать строки таблицы HTML, сгенерированной из базы данных, используя AJAX - PullRequest
0 голосов
/ 09 августа 2010

У меня есть таблица HTML / XML, созданная AJAX, которая отображает ограниченные столбцы таблицы базы данных. Я хотел бы отфильтровать строки таблицы HTML / XML, используя столбцы из базы данных, которые не являются частью таблицы HTML.

Пример:

Таблицы MySQL (игнорируйте неправильный синтаксис):

TABLE technicians (id,
                   name,
                   email,
                   level,
                   PRIMARY KEY (id));
TABLE certificates (id,
                    type,
                    name,
                    PRIMARY KEY(id, type),
                    FOREIGN KEY (id) REFERENCES technicians(id));

Таблица HTML / XML:

<table>
  <tr>
    <td>technician name</td>
    <td>technician level</td>
  </tr>
</table>

Каждая строка в таблице HTML / XML будет отображать имя технического специалиста и уровень технического специалиста, но каждая «строка технического специалиста» будет иметь больше данных, связанных с ней в базе данных. Я хочу отфильтровать каждый «ряд технических специалистов» по ​​сертификатам, а также по уровню. Обратите внимание, что при фильтрации отдельного атрибута соответствующие строки показываются / скрываются, вместо того, чтобы отправлять блок критериев сразу (каждый критерий, в основном, представляет себя).

Насколько я могу судить, я могу сделать это следующими способами:

  1. Отслеживание дополнительных данных в таблице HTML / XML. Таким образом, я могу скрывать / показывать отдельные строки, поскольку их атрибуты фильтруются.
  2. Перезагрузите таблицу, передав критерии фильтрации моему скрипту на стороне сервера. Это потребует от меня анализа всей формы фильтра и перезагрузки всей таблицы каждый раз, когда атрибут фильтруется.
  3. Отправить AJAX-запрос критериев для фильтрации в скрипт, который будет возвращать идентификаторы техников в формате JSON. Таким образом, я мог хранить только идентификатор техника в строке таблицы.

Я новичок в веб-разработке и пытаюсь найти хороший баланс между работой на стороне сервера и на стороне клиента. Как правильно это сделать?

РЕДАКТИРОВАТЬ: добавлено номер 3.

1 Ответ

1 голос
/ 09 августа 2010

То, как я бы это сделал, если (как кажется, так как вы упоминаете AJAX) вам все равно требуется, чтобы браузер клиента имел приличную функциональность Javascript для доступа к вашему сайту, - это отправить все соответствующие сообщения.данные из правильного SELECT запроса к клиенту как JSON;таким образом, код Javascript на стороне клиента может выполнять всю необходимую фильтрацию, а также создавать и отображать таблицу HTML на лету по мере необходимости - быстрее, чем в оба конца до сервера ( намного быстрее, на хорошем уровне).современные браузеры с хорошими движками Javascript).

Задача (как и большинство других задач Javascript ;-) значительно облегчается, если вы выбираете хороший Javascript-фреймворк для своей работы (jQuery, кажется, самый популярный в настоящее время).Я считаю, что это может быть рекомендовано как выбор «по умолчанию» для новых пользователей) - в частности, такие платформы отлично справляются со сглаживанием многих различий, несовместимостей и ошибок браузера, делая ваши сайты доступными дляболее широкая аудитория.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...