Ajax (jquery)实现智能提示搜索框(in Django)
2015-10-30 12:51
651 查看
搜索框输入搜索名字,从数据库中筛选名字, 如果有包含输入的字母的名字则以json格式返回并且显示在搜索框下:
html文件:
对应的视图函数:
html文件:
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"/> <body> <div style="margin-top: 300px;margin-left: 520px;"> <form action="/Fsearch/" method="get" style="margin: auto 0;"> 请输入英文名:<br/> <input type="text" id="search-text" name="q"><button type="button" id='search-button'>搜索</button> <p><span id='search-result'></span></p> </form> </div> <script src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.min.js"></script> <script> $(document).ready(function(){ $("#search-text").keyup(function(){ var q = $("#search-text").val(); #获取搜索框输入的值 $.get("/Fsearch/",{'q':q}, function(data){ #参数:发送的url;传入的数据;请求成功后的调用函数(data即是试图函数返回的json格式数据)详情 for (var i = data.length - 1; i >= 0; i--) { $('#search-result').append(data[i]+'<br/>') #加入到search-result部分显示 }; }) }); $('#search-text').keydown(function(){ $('#search-result').empty(); }) $('#search-text').blur(function(){ $('#search-result').empty(); }) }); </script> </body> </html>
对应的视图函数:
def Fsearch(request): q = request.GET['q'] recontents = PreContent.objects.filter(name__contains=q) #此地很重要,由于要返回json类型到模板,但是json.dumps()只能够把python内置数据类型转化为json,所以以下把上面 从数据库中取出来的queryset型数据转化为数组类型,再用json.dumps()方可成功。 6 rejson = [] 7 for recontent in recontents: 8 rejson.append(recontent.name) return HttpResponse(json.dumps(rejson), content_type='application/json')
相关文章推荐
- jQuery-easyUI的使用:combogrid
- jQuery-easyUI的使用:combobox实现联动选择及自动搜索
- jQuery 仿1688地域选择
- jQuery-easyUI的使用:combo实现图片下拉选择器
- jQuery-easyUI的使用:datagrid实现可编辑表格
- jQuery-easyUI的使用:layout实现基本框框
- jQuery实现仿QQ空间装扮预览图片的鼠标提示效果代码
- jQuery-easyUI的使用:form表单组件及form的三种提交方式
- seajs中引用jquery插件
- 关于jQuery删除弹出提示框的操作
- jquery lazy loading
- jQuery密码强度检测插件passwordStrength用法实例分析
- Jquery 文档的各种高度和宽度
- TIPSO--基于JQUERY的消息提示框插件,用起来蛮顺手
- 基于jQuery实现的美观星级评论打分组件代码
- Jquery获取父元素
- jquery API
- jquery随学随记
- 人人都会的35个Jquery小技巧
- Apatana Studio 3 配置支持JQuery