From 933041866872e048d30f57f914478c820bc583f3 Mon Sep 17 00:00:00 2001 From: lizanle <491823689@qq.com> Date: Tue, 20 Oct 2015 10:11:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=A6=E6=A0=A1=E5=88=97=E8=A1=A8div=20?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/school_controller.rb | 8 +- app/views/my/account.html.erb | 142 ++++++++++++++++----------- 2 files changed, 90 insertions(+), 60 deletions(-) diff --git a/app/controllers/school_controller.rb b/app/controllers/school_controller.rb index 85bd6a784..d20a58b75 100644 --- a/app/controllers/school_controller.rb +++ b/app/controllers/school_controller.rb @@ -125,16 +125,18 @@ class SchoolController < ApplicationController end end if(condition == '') - @school = School.all + @school = School.page((params[:page].to_i || 1) - 1).per(100) + @school_count = School.count else - @school = School.where("name like '%#{chinese.join("")}%' and pinyin like '%#{pinyin.join("")}%'").all + @school = School.where("name like '%#{chinese.join("")}%' and pinyin like '%#{pinyin.join("")}%'").page((params[:page].to_i || 1) - 1).per(100) + @school_count = School.where("name like '%#{chinese.join("")}%' and pinyin like '%#{pinyin.join("")}%'").count end result = [] # @school.each do |sc| # result << {:value=>sc.name,:data=>sc.id} # end - render :json => @school.to_json + render :json =>{ :schools => @school,:count=>@school_count}.to_json end #添加学校 diff --git a/app/views/my/account.html.erb b/app/views/my/account.html.erb index 4a2fe446d..0531ea9e7 100644 --- a/app/views/my/account.html.erb +++ b/app/views/my/account.html.erb @@ -542,19 +542,41 @@ }); } var lastSearchCondition = ''; + var page = 1; //唯一控制页码 变量 + var count = 0; //查询结果的总量 + var maxPage = 0 ;//最大页面值 $(function() { -// $("input[name='province']").keydown(function(e){ -// if(e.keyCode == 13 && $("#search_school_result_list").css('display') == 'block'){ -// str = $("#search_school_result_list").children().eq(0).attr('onclick').match(/\(.*\)/)[0] -// -// str = str.replace(/\(/,'').replace(/\)/,''); -// arr = str.split(','); -// id = arr[1].replace(/\'/,'') -// name = arr.replace(/\'/,'') -// changeValue(name,id); -// return false; -// } -// }); + $("#search_school_result_list").scroll(function(e){ + nScrollHight = $(this)[0].scrollHeight; + nScrollTop = $(this)[0].scrollTop; + var nDivHight = $(this).height(); + if(nScrollTop + nDivHight >= nScrollHight) //到底部了, + { + //判断页码是否是最大值,如果是的,就不去请求了 + if(page >= maxPage){ + return; + }else{ //如果不是,那就请求下一页,请求数据处理 + page ++; + $.ajax({ + url: '<%= url_for(:controller => 'school',:action => 'on_search') %>' + '?name=' + $("input[name='province']").val() + '&page=' + page, + type: 'post', + success: function (data) { + schoolsResult = data.schools; + if (schoolsResult.length != undefined && schoolsResult.length != 0) { + var i = 0; + for (; i < schoolsResult.length; i++) { + link = '' + schoolsResult[i].school.name + '
'; + $("#search_school_result_list").append(link); + } + } else { + + } + } + }); + } + + } + }); //查询学校 $("input[name='province']").on('input', function (e) { throttle(shcool_search_fn,window,e); @@ -568,20 +590,25 @@ } function shcool_search_fn(e){ - $("input[name='occupation']").val(''); //一旦有输入就清空id。 - if($(e.target).val().trim() == lastSearchCondition && $(e.target).val().trim() != ''){ + + if($(e.target).val().trim() == lastSearchCondition && $(e.target).val().trim() != ''){//如果输入框没有改变或者输入框为空就返回 return; } + $("input[name='occupation']").val(''); //一旦有输入就清空id。 lastSearchCondition = $(e.target).val().trim(); + page = 1; //有新的搜索,页面重置为1 $.ajax({ - url: '<%= url_for(:controller => 'school',:action => 'on_search') %>' + '?name=' + e.target.value, + url: '<%= url_for(:controller => 'school',:action => 'on_search') %>' + '?name=' + e.target.value+'&page='+page, type: 'post', success: function (data) { - if(data.length != undefined && data.length != 0) { + schoolsResult = data.schools; + count = data.count; + maxPage = count % 100 + 1; //最大页码值 + if(schoolsResult.length != undefined && schoolsResult.length != 0) { var i = 0; $("#search_school_result_list").html(''); - for (; i < data.length; i++) { - link = '' + data[i].school.name + '
'; + for (; i < schoolsResult.length; i++) { + link = '' + schoolsResult[i].school.name + '
'; $("#search_school_result_list").append(link); } $("#search_school_result_list").css('left', $(e.target).offset().left); @@ -590,7 +617,7 @@ $("#search_school_result_list").show(); if($(e.target).val().trim() != '') { str = e.target.value.length > 8 ? e.target.value.substr(0, 6)+"..." : e.target.value; - $("#hint").html('找到了' + data.length + '个包含"' + str + '"的高校'); + $("#hint").html('找到了' + count + '个包含"' + str + '"的高校'); $("#hint").show(); }else{ $("#hint").hide(); @@ -610,45 +637,46 @@ $("#search_school_result_list").hide(); $("#hint").hide(); } - }) - $("input[name='province']").on('focus', function (e) { - if($(e.target).val() == ''){ // - return; - } - if( $("input[name='occupation']").val() != ''){ //如果已经有id了。肯定存在,不用去找了。 - return; - } - $.ajax({ - url: '<%= url_for(:controller => 'school',:action => 'on_search') %>' + '?name=' + e.target.value, - type: 'post', - success: function (data) { - if(data.length != undefined && data.length != 0) { - var i = 0; - $("#search_school_result_list").html(''); - for (; i < data.length; i++) { - link = '' + data[i].school.name + '
'; - $("#search_school_result_list").append(link); - } - $("#search_school_result_list").css('left', $(e.target).offset().left); - $("#search_school_result_list").css('top', $(e.target).offset().top + 28); - $("#search_school_result_list").css("position", "absolute"); - $("#search_school_result_list").show(); - if ($(e.target).val().trim() != '') { - str = e.target.value.length > 8 ? e.target.value.substr(0, 6) + "..." : e.target.value; - $("#hint").html('找到了' + data.length + '个包含"' + str + '"的高校'); - $("#hint").show(); - } else { - $("#hint").hide(); - } - }else { - $("#search_school_result_list").html(''); - str = e.target.value.length > 4 ? e.target.value.substr(0, 4)+"..." : e.target.value; - $("#hint").html('没有找到包含"'+str+'"的高校,创建高校'); - $("#hint").show(); - } - } - }); }); +// $("input[name='province']").on('focus', function (e) { +// if($(e.target).val() == ''){ // +// return; +// } +// if( $("input[name='occupation']").val() != ''){ //如果已经有id了。肯定存在,不用去找了。 +// return; +// } +// +// $.ajax({ +// url: '<%#= url_for(:controller => 'school',:action => 'on_search') %>' + '?name=' + e.target.value, +// type: 'post', +// success: function (data) { +// if(data.length != undefined && data.length != 0) { +// var i = 0; +// $("#search_school_result_list").html(''); +// for (; i < data.length; i++) { +// link = '' + data[i].school.name + '
'; +// $("#search_school_result_list").append(link); +// } +// $("#search_school_result_list").css('left', $(e.target).offset().left); +// $("#search_school_result_list").css('top', $(e.target).offset().top + 28); +// $("#search_school_result_list").css("position", "absolute"); +// $("#search_school_result_list").show(); +// if ($(e.target).val().trim() != '') { +// str = e.target.value.length > 8 ? e.target.value.substr(0, 6) + "..." : e.target.value; +// $("#hint").html('找到了' + data.length + '个包含"' + str + '"的高校'); +// $("#hint").show(); +// } else { +// $("#hint").hide(); +// } +// }else { +// $("#search_school_result_list").html(''); +// str = e.target.value.length > 4 ? e.target.value.substr(0, 4)+"..." : e.target.value; +// $("#hint").html('没有找到包含"'+str+'"的高校,创建高校'); +// $("#hint").show(); +// } +// } +// }); +// }); // $("#province").leanModal({top: 100, closeButton: ".modal_close"});