Java




Реализация - часть 3


function criterion(obj, row) { this.name=obj.name; // Имя объекта (для CGI-скрипта) this.title_name=obj.title_name; // Наименование объекта this.value=obj.value; // Значение объекта switch (obj.type) { // Тип объекта case "text": { this.type="text"; break } case "radio": { this.type="radio"; this.id=obj.id; // Для идентификации радио-кнопки this.title_value=obj.title_value; break } case "checkbox": { this.type="checkbox"; this.title_value=obj.title_value; break; } case "select-one": { this.type="select-one"; this.title_value=obj.options[obj.selectedIndex].text; this.index=index; break } case "select-multiple": { this.value=obj.options[row].value; this.type="select-multiple"; this.title_value=obj.options[row].text; this.index=obj.options[row].index; break } case "textarea": { this.type="textarea"; break } } this.service=obj.service; // Функциональное назначение объекта this.modif = modif; }

Еще раз подчеркнем, что этот конструктор ориентирован на реализацию только тех требований, которые были описаны в начале статьи. Так например, в нем отсутствует составляющая, которая может задавать реляционные отношения между различными критериями запроса .

К этому моменту осуществленно описание трех JavaScript объектов, которыми будет оперировать клиентская часть информационной системы. Этих трех объектов вполне достаточно для полной реализации всех заявленных требований. Мы не рассматривали подробно назначение всех методов этих объектов, поскольку сейчас важно сформулировать общий подход, опустив второстепенные детали. С другой стороны, количество этих методов совсем не велико, их назначение в большинстве случаев очевидно, а программная реализация крайне проста.

2. Режим HTML-формы

При построении развитой системы формирования запросов к БД возникает необходимость различной обработки HTML-форм. Наиболее распространенной задачей, как нам теперь уже известно, будет задача запоминания новых критерив запроса, и инициализации ранее введенных критериев. Однако эта задача не единственная.

Даже оставаясь в рамках той постановки задачи, которая была определена выше, возникает, например, задача переключения между различными запросами, которые могут одновременно формироваться в системе. Например, при формировании критериев запроса мы можем использовать форму, содержащую объект типа select-multiple (). С другой стороны, этот же объект select-multiple может быть использован в форме, которая будет выводить список всех имеющихся в данный момент запросов. Очевидно, что объекты таких форм, должны обрабатываться по разному. В первом случае, необходимо запомнить новый критерий запроса, во втором случае, сделать выделенный запрос текущим.

Самое очевидное и простое решение этой проблемы заключается в введении переменной, которая будет определять режим (способ обработки) формы. Тогда описанная выше ситуация, может быть разрешена, например, следующим образом:




Содержание  Назад  Вперед