Статьи

Руководство по ColdFusion, часть II

Введение: Если вы читаете это сейчас, то вы должны были уже прочитать Часть I этой статьи, « Учебное пособие по ColdFusion, Часть I — Интеграция базы данных ». Если вы еще не читали Часть I, я предлагаю вам сделать это, иначе вы можете быть незнакомы с о чем я буду говорить. Во второй части этой статьи я расскажу о методах кодирования ColdFusion (CF). Все, что я расскажу, будет найдено за пределами тегов <CFQUERY>, а расширенное кодирование внутри тегов <CFQUERY> будет найдено в части III «Учебное пособие по ColdFusion, часть III — Расширенная интеграция с SQL и базами данных».

1. Работа с флажками

Если вы экспериментировали с тем, что я рассмотрел в первой части, вы можете столкнуться с проблемами при получении информации от флажка. Это потому, что когда флажок не установлен, никакое значение не передается, даже нулевое значение, поэтому интерпретатор CF в конечном итоге ищет значение, которого там нет. К счастью, это легко исправить.

Рисунок 1. CFPARAM
<CFPARAM NAME = «addtolist» DEFAULT = «no»>

Вставляя приведенную выше строку кода на страницу обработки формы, вы предоставляете интерпретатору значение по умолчанию, которое решает проблему.

2. Цвет чередующейся строки

Часто при отображении данных из базы данных желательно чередовать цвет фона строки для удобства чтения. Это легко сделать, используя всего несколько строк кода:

Рисунок 2. Alternating Row Color
<STYLE TYPE = «text / css»>
<! —
.row0 {background-color: green;}
.row1 {background-color: white;}
->
</ STYLE>
<TABLE>
<CFOUTPUT QUERY = «QueryName»>
<CFSET class = «row # Int (QueryName.CurrentRow MOD 2) #»>
<TR class = # class #>
<TD> # Field1 # </ TD>
<TD> # Field2 # </ TD>
</ TR>
</ CFOUTPUT>
</ Table>

Теперь давайте рассмотрим код. Во-первых, у вас есть CSS-код, в котором говорится, что класс .row0 будет иметь такой-то цвет, а класс .row1 будет другого цвета. Далее вы видите тег CFOUTPUT, который теперь должен быть вам знаком, а после этого — то, чего не может быть. Тег CFSET используется для присвоения значений переменным. Мы используем его для определения переменной с именем class, значение класса создается путем вычисления строки функции # Int (QueryName.CurrentRow MOD 2) #. Первый бит этой функции — просто текстовая строка, которую мы можем игнорировать. Затем мы видим знак #, который отмечает начало выражения CF. Функция Int возвращает целое число при передаче значения, используемое значение — QueryName.CurrentRow MOD 2. Что означает это значение: «Что является остатком, когда текущий номер строки делится на 2.» Как вы знаете, деление чего-либо на 2 приведет к 1 или 0 в качестве остатка, поэтому все четные строки будут содержать остаток от 0, все нечетные строки будут содержать остаток от 1, поэтому для четных строк переменный класс будет «row0» и для нечетных строк это будет «row1», что позволит вам чередовать цвета строк.

3. CFIF, CFELSE, CFELSEIF

Если вы знакомы с любым языком программирования, вы должны быть знакомы с концепциями условного кода. Теперь я буду обсуждать синтаксис CF для этого. Каждый тег <CFIF> должен иметь соответствующий тег </ CFIF>, теги <CFELSE> и <CFELSEIF> не являются обязательными. Вы можете использовать столько тегов <CFELSEIF>, сколько необходимо, однако вы можете использовать только один тег <CFELSE> для каждого тега <CFIF>, и тег <CFELSE> всегда должен стоять последним.

Рисунок 3. CFIF Example

<CFIF Login IS «True»>
Добро пожаловать.
<CFELSEIF Логин — «Ложь»>
Извините, мы не смогли войти в систему.
<CFELSE>
Проблема была в обработке вашего запроса,
Пожалуйста, попробуйте еще раз или обратитесь к администратору сервера.
</ Cfif>

При сравнении значений в тегах CFELSEIF и CFIF вы можете использовать следующие операторы:

IS — Логин ЕСТЬ «True»
НЕТ — Логин НЕ «True»
СОДЕРЖИТ — «KY, MI, CA, FL» СОДЕРЖИТ государство
НЕ СОДЕРЖИТ — «MI, OH, CA» НЕ СОДЕРЖИТ State
БОЛЬШЕ, ЧЕМ — ЭКОЛОГИЯ БОЛЬШЕ, ЧЕМ «13»
МЕНЬШЕ, ЧЕМ — МЕНЬШЕ, ЧЕМ «62»
БОЛЬШЕ, ЧЕМ ИЛИ РАВНЫМ — возраст БОЛЬШЕ, ЧЕМ ИЛИ РАВНЫМ «13»
МЕНЬШЕ, ЧЕМ ИЛИ РАВНЫМ — Возраст МЕНЬШЕ, ЧЕМ ИЛИ РАВНЫМ «62»

Также вы можете комбинировать утверждения, используя AND или OR, такие как: age LESS THAN «20» и sex is «male».

4. CFINCLUDE

Для использования стиля SSI с использованием CF вы должны использовать тег <CFINCLUDE>.

Рисунок 4. CFINCLUDE

<CFINCLUDE TEMPLATE = «include.htm»>

Я думаю, что это очень просто и не нуждается в объяснении. Однако в отличие от SSI вы можете использовать только относительные пути к файлу, который будет включен.

5. Печенье

Cookie — это переменная, установленная на клиентском компьютере, она полезна для отслеживания посетителей, установки логинов и множества других вещей. Для создания файла cookie в CF вы используете тег <CFCOOKIE>. Затем для чтения из cookie вы используете код, такой как: # COOKIE.Name #, где «name» — это имя cookie.

Рисунок 5. Cookie Syntax

<CFCOOKIE NAME = «Name» Value = «Value» Expires = «Срок действия»>

Датой истечения срока может быть определенная дата, например, «3/9/81», это может быть относительное количество дней «100» или «Сейчас» или «Никогда». Также в дополнение к вышесказанному есть некоторые необязательные атрибуты для тега CFCOOKIE. Включая слово SECURE без аргументов, вы указываете, что cookie-файл необходимо отправлять безопасно с использованием SSL, если SSL не доступен, cookie-файл не отправляется. Включив DOMAIN (Domain = «webdevhq.com; webmasters-network.com»), вы можете указать домены, к которым применяется cookie, и, включив PATH, вы можете указать подмножество URL-адресов, к которым применяется cookie, при использовании PATH, ДОМЕН требуется.

Заключение В этой части статьи я рассмотрел наиболее распространенные методы кодирования CF, которые не применимы к тегу <CFQUERY>. В части III я расскажу о продвинутом кодировании SQL и CF, которое напрямую влияет на ваш запрос.