首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFML Jquery Ajax -当cffunction实际返回18时返回0

CFML Jquery Ajax -当cffunction实际返回18时返回0
EN

Stack Overflow用户
提问于 2012-02-27 12:15:20
回答 3查看 239关注 0票数 2

这必须是一个Jquery问题。下面的代码返回零。当我测试/调试时,我可以毫无疑问地说函数正在生成数字18。成功警告显示"Dupe Group-2 count=0“。Firebug响应显示;{"COLUMNS":"DUPECOUNTER","DATA":["0"]}

代码语言:javascript
复制
  if ($(e.target).is(":checked")) {
    $firstTD = $(this).parent().siblings().first();
    SaveDupeGroup = $firstTD.text();
        $.ajax({
            type: 'GET',
            url: 'cfc/basic.cfc?method=CheckDupeGroup&returnformat=json',
        dataType: 'json',
        data: 'dupegrouptocheck=' + $firstTD.text(),
            error: function (xhr, textStatus, errorThrown) {
            // show error 
            alert(errorThrown); 
            },
            success: function (response, textStatus, jqXHR) {
            alert('Dupe Group-' + SaveDupeGroup + ' count=' + response.DATA[0]);
            ReInitAnswer = confirm('All of the names in this group have been checked.\nDo you want to remove them from the list?');
        if (ReInitAnswer) {
              alert('continued'); 
                } else {
              alert('canceled');
              return false;
                }
        }
            });
        }

<cffunction name="CheckDupeGroup" output="false" access="remote">
<cfargument name="DupeGroupNumber" required="True" type="string" default="" />
<cfset var qResults = "" />
<cfquery name="qResults" datasource="#request.dsn#">
SELECT COUNT(id) AS DupeCounter 
FROM Temp_Duplicate_Individuals_AddressZipState 
Where dupe_group_number = #val(arguments.DupeGroupNumber)# and isnull(not_dupe_flag,'False') = 'False' 
</cfquery>
<cfreturn (qResults) />
</cffunction>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-27 12:27:53

您正在传递data: 'dupegrouptocheck=' + $firstTD.text(),但是函数中的参数名称是DupeGroupNumber。将dupegrouptocheck更改为DupeGroupNumber

之所以没有抛出一个必需的参数错误,是因为您有一个参数的默认值(一个空字符串),而CF将使用默认值,而不是因为没有传入参数而抛出错误。

因此,您实际上是在运行:

代码语言:javascript
复制
SELECT COUNT(id) AS DupeCounter 
FROM Temp_Duplicate_Individuals_AddressZipState 
Where dupe_group_number = "" and isnull(not_dupe_flag,'False') = 'False' 

因为您没有一个等于""dupe_group_number,所以查询正确地返回了计数0。

票数 3
EN

Stack Overflow用户

发布于 2012-02-27 12:24:32

也许您发送的参数不正确。检查get调用

票数 0
EN

Stack Overflow用户

发布于 2012-02-27 12:24:58

它是异步的,这就是为什么。您的代码在从服务器返回数据之前执行返回。在"if( ReInitAnswer )“这一点上,ReInitAnswer甚至都不存在。通常,在包含ajax调用的函数中,您不会返回某些内容,而是更改页面上的某些内容或更改状态。

顺便说一下,您应该对js变量进行var

编辑:哦,对不起,返回语句在成功调用中(缩进有点混乱:p)。在本例中,它仍然是一样的,在ajax调用成功函数返回之前,父函数已经完成。因此,返回值总是错误的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9460000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档