【问题标题】:How to pass value from URL as an argument to ColdFusion function?如何将 URL 中的值作为参数传递给 ColdFusion 函数?
【发布时间】:2020-11-23 20:55:21
【问题描述】:

我正在使用 JQuery 和 AJAX 以及 ColdFusion。我在 URL http://mysitedomain.com/something/page.cfm?x=229 中有一些值我希望 x 的这个值作为我的 ColdFusion 函数的参数。

谁能告诉我如何使用 AJAX 或任何其他方式将 URL 中 x 的值作为参数传递给我的 ColdFusion 函数?

我不知道它是如何工作的,但我仍然尝试这样做: AJAX 代码:

$.ajax({
    type: "GET",
    url: 'SomePathTocfc?method=getsomething&x='+x,
    async: true,
    success: function(result){
        document.getElementById('abc').value = "My Text Input";
    }
}); 

ColdFusion 功能:

<cffunction name="getsomething" access="remote" output="true">
   <cfargument name="x" type="string" required="true">
      <cfquery name="getReq" datasource="#application.dbsrc#" result =result>
          Select * from TableName 
          Where 
          <cfif  isDefined("arguments.x")  >
          x = #arguments.x#
          </cfif>
      </cfquery>
</cffunction>

【问题讨论】:

  • 您发布了两种调用 ColdFusion 页面的不同方法。首先到带有 URL http://mysitedomain.com/something/page.cfm?x=229 参数的 CFM 页面。在您的 CFM 页面中,您会将该参数引用为 url.x。第二个示例是从 JavaScript 调用 CFC。你在这里给我的东西在我看来没问题。我认为这应该有效。你得到什么错误?顺便说一句,永远不要相信输入参数并将它们直接放在您的查询中,例如x = #arguments.x#。您需要先清理该值。始终使用queryparam
  • 顺便说一句,你的函数不会返回任何东西
  • @JamesAMohler 是的。我将在那里添加一个返回语句,但目前我正面临 arg x 的问题。
  • @Miguel-F 感谢您的回复。我收到一个错误,说 x 未定义。在我的 page.cfm 页面中,我正在执行 这是正确的吗?
  • 现在我得到“未定义”作为函数的返回值,你猜为什么?

标签: javascript jquery coldfusion coldfusion-10 jquery-ajax


【解决方案1】:

只需使用&lt;cfargument name="inparam" type="struct"&gt;,您将获得作为结构的url值,您可以使用它并执行&lt;cfdump var="#arguments#"&gt;,您将看到您传递的参数,您可以像这样使用它们

<cffunction name="getsomething" access="remote" output="true">
   <cfargument name="inParam" type="struct" required="false">
      <cfquery name="getReq" datasource="#application.dbsrc#" result =result>
          Select * from TableName 
          Where 1=1 
<cfif inParam.keyExists('x')>
         and x = <cfqueryparam sqltype="integer" value="#inparam.x#">
</cfif>
          
      </cfquery>
</cffunction>

【讨论】:

  • 我的函数的返回值是“未定义”,你猜为什么?
  • 你用过吗,它会返回查询结果
  • 并且 X 是数据库表 TableName 中的一列
  • 你也不需要output="true",也不需要result =result
猜你喜欢
  • 1970-01-01
  • 2012-11-09
  • 2013-01-27
  • 1970-01-01
  • 2020-03-22
  • 2023-01-12
  • 2012-11-17
  • 2020-12-18
  • 2018-09-09
相关资源
最近更新 更多