Есть ли более простой способ манипулировать флажками в Coldfusion? - PullRequest
1 голос
/ 05 ноября 2010

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

Исходная форма имеет те же флажки, но они всегда пусты. Пользователь может снять флажки и значения будут помещены в базу данных.

Аспирантура: осень? Весна? Летом? Хранится в виде списка в столбце с именем grad. (F, M, S)

У них есть возможность сохранить эту прекрасную форму как черновик. Когда они возвращаются к черновику, мне нужно показать, что они уже могли проверить.

  <cfif listContains(#grad#, "F") is not 0>
  <input type="checkbox" name="grad" id="grad" value = "F" checked />
  <cfelse>
  <input type="checkbox" name="grad" id="grad" value = "F"  />
  </cfif>
  <cfif listContains(#grad#, "S") is not 0>
  <input name="grad" type="checkbox" id="grad" value = "S" checked />
  <cfelse>
  <input name="grad" type="checkbox" id="grad" value = "S" />
  </cfif>
  <cfif listContains(#grad#, "M") is not 0>
  <input name="grad" type="checkbox" id="grad" value = "M" checked />
  <cfelse>
  <input name="grad" type="checkbox" id="grad" value = "M" />
  </cfif>

Есть ли более простой способ сделать это с помощью кода cfform?

Просто любопытно. :)

1 Ответ

3 голосов
/ 05 ноября 2010

Я делаю это так, как я на самом деле не использую <cfform>:

<cfloop list="F,S,M" index="g">
  <input type="checkbox" name="grad" id="grad_#g#" value="#g#" #CheckedIf(ListFind(grad, g) gt 0)# />
</cfloop>

<!--- ... --->
<cfscript>
  function CheckedIf(expression) {
    if (arguments.expression) return 'checked="checked"';
    return "";
  }
</cfscript>

Но в документации ColdFusion:

[с тех пор] ColdFusion MX: изменен тег cfform preserveData Атрибут Поведение: если это установлен на True, Проверки ColdFusion значения радио и флажок только если их стоимость соответствует объявленной стоимости для контроля.

Так что да, <cfform> может помочь вам в этом. Используйте <cfparam name="FORM.xyz" default="foobar">, чтобы эмулировать "опубликованное значение" для обычных запросов.

...