gpt4 book ai didi

jquery - 使用 jquery 将数组传递给 ColdFusion 组件

转载 作者:行者123 更新时间:2023-12-01 00:22:18 25 4
gpt4 key购买 nike

在开始之前,我承认我对 jquery 非常陌生,事实上,截至 3 个月前我还没有 javascript 背景。

我想要完成的是获取 jquery 中可用的信息数组,并将该数组传递到可以处理信息的 .cfc 文件。

这是我的 jquery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery.json.min.js"></script>
<script type="text/javascript">
$(function() {
var mydata = {data:[1,2,3,4,5]};

$.post('test.cfc', {method:"handleArray", returnFormat:"plain", argumentCollection: $.toJSON(mydata)}, function(res) {
alert($.trim(res));
});
});
</script>

这是从 Stephen Duncan Jr 大约 5 年前的帖子中找到的一段代码。

这是冷聚变:

<cfcomponent>

<cffunction name="handleArray" access="remote" returnType="numeric">
<cfargument name="data" type="array" required="true">

<cfquery name = "qTest" datasource="#REQUEST.dsn#" username="#REQUEST.dsu#" password="#REQUEST.dsp#">
INSERT INTO test
(value1, value2, value3, value4, value5)
VALUES (
<cfqueryparam cfsqltype="cf_sql_integer" value="#handleArray[1]#">,
<cfqueryparam cfsqltype="cf_sql_integer" value="#handleArray[2]#">,
<cfqueryparam cfsqltype="cf_sql_integer" value="#handleArray[3]#">,
<cfqueryparam cfsqltype="cf_sql_integer" value="#handleArray[4]#">,
<cfqueryparam cfsqltype="cf_sql_integer" value="#handleArray[5]#">)
</cfquery>

<cfreturn arrayLen(arguments.data)>
</cffunction>

</cfcomponent>

这段代码当然只是一个让它工作的测试。但我需要将大约 40 个变量传递给 cfc。

如果您能提供任何信息,我们将不胜感激,尤其是任何能够解释结果为何有效的信息。

最佳答案

@TimHowey 你的 jquery post 方法似乎有问题。我认为这是你需要做的:

<script type="text/javascript" src="jquery.json.min.js"></script>
<script type="text/javascript">
$(function() {
var mydata = "[1,2,3]";
$.post('test.cfc', {
method: "handleArray",
returnFormat: "plain",
data: mydata
}, function(res) {
alert("ok");
});
});
</script>

您使用的是 post 方法,因此所有内容都将在 form 范围内发送。在您的 cfc 中,您所需要做的就是反序列化参数,如下所示:

    <cffunction name="handleArray" access="remote" returnType="numeric">
<cfargument name="data" type="any" required="true">
<cfset var getArray = DeserializeJSON(arguments.data)/>
<cfset var qTest = "">

<cfquery name = "qTest" datasource="#REQUEST.dsn#" username="#REQUEST.dsu#" password="#REQUEST.dsp#">
INSERT INTO test
(value1, value2, value3)
VALUES (
<cfqueryparam cfsqltype="cf_sql_integer" value="#getArray[1]#">,
<cfqueryparam cfsqltype="cf_sql_integer" value="#getArray[2]#">,
<cfqueryparam cfsqltype="cf_sql_integer" value="#getArray[3]#">
)
</cfquery>

<cfreturn arrayLen(getArray)>
</cffunction>

编辑

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery.json.min.js"></script>
<script type="text/javascript">
$(function() {
var mydata = '[1,"keshav",3]';
$.post('test.cfc', {
method: "handleArray",
returnFormat: "plain",
data: mydata
}, function(res) {
alert("ok");
});
});
</script>

关于jquery - 使用 jquery 将数组传递给 ColdFusion 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33420922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com