我是一个学习jquery的新手,我想要实现像百度,google那样的自动提示的功能,就是比如在输入"长"的时侯,出现"长春,长沙"的下拉菜单可供用户选择。
关于这个功能,在网上的资料很多了,我的server端的语言用的是python,所以我参考了web.py这个网络框架给的例子http://www.web2pyslices.com/main/slices/take_slice/51
主要的代码是这样的:
index.html:<body>
    <label for="country">Search country:</label><br />
    <input type="text" id="country" name="country" autocomplete="off" onkeyup="getData(this.value);" /><br />
    <div id="ajaxresults"></div>
</body>
function getData(value)
{
        if(value != "")
{
            $("#ajaxresults").show();
            $.post("{{=URL(r=request,f='ajaxlivesearch')}}",{partialstr:value},function(result){
                $("#ajaxresults").html(result);
            });
        }
else
{
            hide();
        }
 }
server 端的python 例子 Default.py:db = DAL('sqlite://storage.sqlite')db.define_table('country',
                Field('iso'),
                Field('name'),
                Field('printable_name'),
                Field('iso3'),
                Field('numcode'))def index():
    return dict()def ajaxlivesearch():
    partialstr = request.vars.values()[0]
    query = db.country.printable_name.like('%'+partialstr+'%')
    countries = db(query).select(db.country.printable_name)
    items = []
    for (i,country) in enumerate(countries):
        items.append(DIV(A(country.printable_name, _id="res%s"%i, _href="#", _onclick="copyToBox($('#res%s').html())"%i), _id="resultLiveSearch"))    return TAG[''](*items)结果是在index.html里面输入数据之后,下拉菜单出现了但是空的。
$.post("{{=URL(r=request,f='ajaxlivesearch')}}",{partialstr:value},function(result){$("#ajaxresults").html(result);
这一行没有成功运行。我知道这个例子是web framework做的,可能需要改动一下,我该怎么改这个语句呢?我弄好久都没弄好,只好到这里来求助了,先谢谢了!

解决方案 »

  1.   

    $.post("url", "参数一": "值一", "参数二", "值二", ..., function(data){
        alert(data);
    });如果值是整数可以不用加双引号
      

  2.   

    $.post("url", {"参数一": "值一", "参数二", "值二", ...}, function(data){
      alert(data);
    });
      

  3.   


    谢谢,这个我知道,但在这个例子中,是引发Default.py 里面的那个ajaxlivesearch 函数,然后在函数中搜索数据库。 再把返回的结果格式化。那怎么改呢?是不是
    $.post("Default.py?ajaxlivesearch",{partialstr:value},function(result){$("#ajaxresults").html(result);