2013-02-13 123 views
1

如何通过使用ajax动态地附加表单字段值来检索查询结果?自动完成不返回输出

<script> 
    $(document).ready(function() { 
    $("textbox").autocomplete({ 
     source: function(query, response) { 
      $.ajax({ 
       url: "/xxx/sample.cfc?method=queries&returnformat=json", 
       dataType: "json", 
       data: { 
        searchKeyword: query.term 
       }, 
       success: function(result) { 
        response(result); 
       } 
      }); 
     } 
    }); 
    }); 
</script> 

我试过下面的代码,但无法获得输出。这种方式是正确的吗?

如何通过将searchKeyword传递给sample.cfc来获取记录?什么是在sample.cfc中写入的逻辑?

+0

尝试select2:http://ivaynberg.github.com/select2/ – 2013-02-13 10:24:27

+0

我认为你是在做事情倒退。我想你应该先让你的cfc工作,然后再开始用ajax调用它。原因是如果你第一次没有完全写出它,使用ColdFusion进行故障排除并且没有其他问题容易得多。 – 2013-02-13 13:16:47

+0

是“textbox”的ID吗?一定要使用$(“#textbox”)。如果它是自动完成的。我同意丹,确保您的cfc根据您的查询字符串生成所需的json。 – Travis 2013-02-13 14:00:58

回答

0

也许你唯一的问题是你没有正确定位文本框。 更改您的代码以

<input type="text" id="textbox"> 
<script> 
    $(document).ready(function() { 
    $("#textbox").autocomplete({ 
     source: function(query, response) { 
      $.ajax({ 
       url: "/xxx/sample.cfc?method=queries&returnformat=json", 
       dataType: "json", 
       data: { 
        searchKeyword: query.term 
       }, 
       success: function(result) { 
        response(result); 
       } 
      }); 
     } 
    }); 
    }); 
</script> 

提交正确对我来说,用Firebug显示的网址参数(在我输入我的名字到输入字段)为:

方法查询

returnformat JSON

searchKeyword andrew

(注意:如果您在标签内,您必须将选择器更改为## tex TBOX)

一个令人难以置信的简单sample.cfc刚刚返回关键字搜索还给你看起来像

component{ 

    remote function queries() { 
     return url.searchKeyword; 
    } 

} 

除非这只是一个学习锻炼的你,我建议使用jQuery的小部件保存你自己写一个完整的自动完成器。