Честно говоря, хорошо работает (jQuery/Ajax или Coldfusion встроены в функции ajax). Это действительно зависит от проекта. Если вы в настоящее время не сильно полагаетесь на jQuery в приложении, то Coldfusion, вероятно, быстрее всего реализуется и нет зависимостей/импорта.
Если функции cfc построены правильно, они будут работать так, чтобы они могли использоваться взаимозаменяемо с любым методом.
Настоящая демонстрация Coldfusion ... надеюсь, что это поможет.
==== HTML
<cfform name="test" >
<cfselect name="option1">
<option value="">--please select--</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</cfselect>
<cfselect name="option2" display="suboption_display" value="suboption_value" bindOnLoad="true" bind="cfc:webroot.jquery.stackoverflow.cascadingselect.applogic.select_binding({option1})" ></cfselect>
</cfform>
== CFC
<cfcomponent>
<cffunction name="select_binding" access="remote" returntype="query">
<cfargument name="selected_option" type="string" required="yes">
<cfset dataset = QueryNew('suboption_display,suboption_value','CF_SQL_VARCHAR,CF_SQL_INTEGER')>
<cfswitch expression="#arguments.selected_option#">
<cfcase value="1">
<cfset r = queryaddrow(dataset,3)>
<cfset temp = querysetcell(dataset, 'suboption_display', 'black', 1)>
<cfset temp = querysetcell(dataset, 'suboption_value', 1, 1)>
<cfset temp = querysetcell(dataset, 'suboption_display', 'white', 2)>
<cfset temp = querysetcell(dataset, 'suboption_value', 2, 2)>
<cfset temp = querysetcell(dataset, 'suboption_display', 'gray', 3)>
<cfset temp = querysetcell(dataset, 'suboption_value', 3, 3)>
</cfcase>
<cfcase value="2">
<cfset r = queryaddrow(dataset,3)>
<cfset temp = querysetcell(dataset, 'suboption_display', 'red', 1)>
<cfset temp = querysetcell(dataset, 'suboption_value', 1, 1)>
<cfset temp = querysetcell(dataset, 'suboption_display', 'blue', 2)>
<cfset temp = querysetcell(dataset, 'suboption_value', 2, 2)>
<cfset temp = querysetcell(dataset, 'suboption_display', 'green', 3)>
<cfset temp = querysetcell(dataset, 'suboption_value', 3, 3)>
</cfcase>
<cfcase value="3">
<cfset r = queryaddrow(dataset,3)>
<cfset temp = querysetcell(dataset, 'suboption_display', 'yellow', 1)>
<cfset temp = querysetcell(dataset, 'suboption_value', 1, 1)>
<cfset temp = querysetcell(dataset, 'suboption_display', 'orange', 2)>
<cfset temp = querysetcell(dataset, 'suboption_value', 2, 2)>
<cfset temp = querysetcell(dataset, 'suboption_display', 'purple', 3)>
<cfset temp = querysetcell(dataset, 'suboption_value', 3, 3)>
</cfcase>
<cfdefaultcase>
<cfset r = queryaddrow(dataset,1)>
<cfset temp = querysetcell(dataset, 'suboption_display', '--please select option--', 1)>
<cfset temp = querysetcell(dataset, 'suboption_value', 0, 1)>
</cfdefaultcase>
</cfswitch>
<cfreturn dataset>
</cffunction>
</cfcomponent>
Есть много примеров там ... см http://stackoverflow.com/questions/13414175/dynamic- drop-down-list-in-coldfusion-9 для образца. –
Я считаю, что атрибут bind cfinput или cfselect является очень простым способом для этого. Google из этих тегов для примеров. Убедитесь, что вы выполняете свои запросы и функции cfc, прежде чем пытаться использовать их с ajax. –
Вы можете сделать это, используя только CF, но форма будет обновляться и переходить на другую страницу, и она будет выглядеть так 90 секунд. – Henry