Я использую ColdFusion почти 14 лет. Причина, по которой CF является таким офигенным продуктом, заключается в том, что он дает новым пользователям возможность быстро выполнить большую работу без особого понимания, а также позволяет ученым-ракетостроителям быстро создавать действительно мощные и безопасные приложения.
CFFFORM, CFINPUT, CFLAYOUT, CFPOD - это теги, которые создаются для новых пользователей. В основном это тренировочные колеса. Если вы новичок в веб-разработке, попробуйте эти теги. По мере накопления опыта вы захотите отбросить эти теги и перейти на другие методы для создания более надежных приложений.
В этих тегах нет ничего плохого, как и в тренировочных колесах. Вам просто нужно знать, что есть подходящий инструмент для каждой работы. На самом деле, есть много подходящих инструментов для каждой работы.
В настоящее время я занимаюсь разработкой интрасети ColdFusion 9 / jQuery / SQL Server, которая создает внешние веб-сайты. Я делаю это без использования одного тега формы. И я делаю это полностью в CFSCRIPT. Вау!
Используя jQuery, вам не нужны формы. Вам просто нужны входные данные. Вот как я могу создать вход в CFSCRIPT.
<cfscript>
Options = "";
for (i = 1; i lte 10; i++) {
Options = Options & wrapOption("Some choice #i# ", i);
}
SelectBox = wrapSelect(Options, "MySelectID");
writeOutput(SelectBox);
SecretDiv = wrapDiv("", "", "MyDivID");
writeOutput(SecretDiv);
</cfscript>
Пользовательские функции для создания HTML находятся в моем файле UDF_Library.cfm:
// WRAP SELECT
function wrapSelect(SelectContent, Class, ID) {
LOCAL.SelectContent = ARGUMENTS.SelectContent;
LOCAL.Properties = "";
// CLASS
if (isDefined("ARGUMENTS.Class")) {
LOCAL.Properties = LOCAL.Properties & " class='#ARGUMENTS.Class#'";
}
// ID
if (isDefined("ARGUMENTS.ID")) {
LOCAL.Properties = LOCAL.Properties & " id='#ARGUMENTS.ID#'";
}
LOCAL.Item = "<select #LOCAL.Properties#>#LOCAL.SelectContent#</select>";
return LOCAL.Item;
}
// WRAP OPTION
function wrapOption(Content, Value, Selected) {
LOCAL.Content = ARGUMENTS.Content;
LOCAL.Properties = " value='#ARGUMENTS.Value#'";
// SELECTED
if (isDefined("ARGUMENTS.Selected") and (ARGUMENTS.Selected eq "selected")) {
LOCAL.Properties = LOCAL.Properties & " selected";
}
LOCAL.Item = "<option #LOCAL.Properties#>#LOCAL.Content#</option>";
return LOCAL.Item;
}
// CREATE DIV
function wrapDiv(Content, Class, ID) {
LOCAL.Properties = "";
// CLASS
if (isDefined("ARGUMENTS.Class")) {
LOCAL.Properties = LOCAL.Properties & " class='#ARGUMENTS.Class#'";
}
// ID
if (isDefined("ARGUMENTS.ID")) {
LOCAL.Properties = LOCAL.Properties & " id='#ARGUMENTS.ID#'";
}
LOCAL.Item = "<div #LOCAL.Properties#>#ARGUMENTS.Content#</div>";
return LOCAL.Item;
}
Я использую jQuery и ссылаюсь на каждый элемент по его классу или идентификатору. Если вы сделаете это, вы можете отправить данные в каждом элементе для вызова ajax, например:
<script type="text/javascript">
$(document).ready(function() {
$("#MySelectID").change(function() {
MyID = $("#MySelectID").val();
$("#MySecretDiv").load("CoolQuery.cfm?UserID"+MyID);
});
});
</script>
Суть в том, что пока вы используете CFFORM и CFINPUT, вы не можете делать все действительно мощные jQuery. Но вам нужны эти теги, чтобы начать.
2012 год станет офигительным годом для возможностей ColdFusion и jQuery !!!
Удачи!