0

我试图从选择标签中获取选定的值并将其传递给 jquery 中的冷融合标签,如下所示。

选择标签代码:

<select id="selectco">
<cfoutput query="colist">
<option value="#cid#">#coname#</option>
</cfoutput>
</select>

jQuery代码:

$(document).ready(function() 
{
    $("#selectco").change(function() 
    {
        var e=document.getElementById("selectco");
        var opt=e.options[e.selectedIndex].value;
         $("#selectst").html("<cfquery name='stlist' datasource='tasks'>
select * from state where cid='"+opt+"'
</cfquery><select id='selectct'><cfoutput query='stlist'><option>#stname#</option></cfoutput>");
    });
});

我能够将值设为 opt 变量。但无法将值传递给 cfquery 标记。请帮我。

4

2 回答 2

3

CFML 在 ColdFusion 服务器上解析;Javascript 在客户端浏览器上运行。两者永远不会“存在”在同一个空间中。

我建议您阅读我的博客文章,描述 CF 如何参与请求

您需要做的是阅读ColdFusion(或一般情况下)中的数据绑定,这是相当有据可查的,所以在这里复制它没有什么意义。

于 2013-07-31T09:10:53.440 回答
0

Jquery 在客户端/浏览器端执行,而 ColdFusion 在服务器端执行。

我已经使用 CFC 完成了很多实现。您可以尝试$.get()在每次选择更改事件后触发请求。

假设我有一个名为“myApplication.cfc”的组件保存在mywebsite/cfc.

我的应用程序.cfc

<cfcomponent>
    <cffunction name="getstateList" access="remote" returntype="string"
        returnformat="plain">
        <cfargument name="cid" required="no" default="" type="string">

        <cfset var stlist = "">

        <cfquery name="stlist" datasource="tasks">
            SELECT  stateCode 
            FROM    state 
            WHERE   cid = <cfqueryparam value="#arguments.cid#" 
                               cfsqltype="cf_sql_varchar">
         </cfquery>


        <cfreturn stlist.stateCode> 
    </cffunction>
</cfcomponent>

哪里$.get('mywebsite/cfc/myApplication.cfc?method=getstateList&cid='+yourParam)。因此,之后您可以使用结果并填充您的选择列表。

于 2013-08-09T11:45:29.830 回答