在开始之前,我对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>
这是一段代码,发自大约5年前Stephen Duncan Jr的帖子。
这是冷聚变:
<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。
任何可以提供的信息都将非常受欢迎,尤其是解释结果有效的任何信息。
答案 0 :(得分:2)
@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>