2010-03-29 10 views
1

将表单作用域传递到cfc并使用access =“remote”的语法是什么? 我:将表单作用域传递给远程cfc

<cfcomponent> 
<cfset Variables.Datasource = "xxx"> 

<cffunction name="Save" access="remote"> 
    <cfset var local = {}> 

    <!--- todo: try/catch ---> 
    <cfif arguments.PersonID> 
     <cfquery datasource="#Variables.Datasource#"> 
     UPDATE Person 
     SET FirstName = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.FirstName#"> 
     ,LastName = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.LastName#"> 
     WHERE PersonID = <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.PersonID#"> 
     </cfquery> 
     <cfset local.result = arguments.PersonID> 
    <cfelse> 
     <cfquery name="local.qry" datasource="#Variables.Datasource#"> 
     INSERT INTO Person(FirstName,LastName) VALUES(
     <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.FirstName#"> 
     ,<cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.LastName#"> 
     ); 
     SELECT PersonID FROM Person 
     WHERE PersonID=Scope_Identity() 
     </cfquery> 
     <cfset local.result = local.qry.PersonID> 
    </cfif> 
    <cfreturn local.result> 
</cffunction> 
</cfcomponent> 

我需要form.PersonID,form.firstname,form.lastname通过。

回答

1

您的远程函数可以接受结构参数或3个字符串参数(PersonID,名字和姓氏)。

<CFARGUMENT>在文档

+0

亨利,谢谢你的回应。我不够清楚。我正在学习jQuery,所以答案必须与jQuery中的.serialize()函数有关。 – 2010-03-30 05:25:59

+0

Phillip - 如果您的问题是关于jQuery的,请编辑您的问题以明确询问。另外,您可以添加jQuery标签来帮助那些对此感兴趣的人。我会像@亨利那样回答这个问题。 – 2010-03-30 13:54:39

+0

哎。好的,我会稍微反思一下这个问题。 – 2010-03-30 17:21:07

1

一个不相关的事情。在cf9中,您已经有本地结构等待。在这里更多http://forta.com/blog/index.cfm/2009/6/21/The-New-ColdFusion-LOCAL-Scope

+0

好注意intnick。我看着http://www.byteout.com/,对你的工作印象深刻。现在我的共享服务器是8,所以我仍然使用8语法编码,即使我的本地主机上有9个。 因为脚本语法,我开始编码9时会发生巨大的变化! – 2010-03-30 17:20:07