2015-01-02 4 views
0

1. 반환 된 검색 항목이나 결과에서 데이터를 강조 표시하려면 어떻게해야합니까? 예 : ctr + f가 열린 파일에서 일반 항목/요소 검색을 수행하는 방식. 2. json 자동 완성을 추가합니다. 즉, 사용자가 데이터베이스 데이터를 기반으로하는 검색 창에 입력 할 때 제안 사항을 표시합니다. 여기에 내보기 코드가 있지만 실제로는 검색어를 강조 표시하지 않고 결과 만 반환합니다. 어떤 도움의 pliz :Hghlight 검색 용어

@view_config (요청) 데프 검색 ('./템플릿/search.mako'ROUTE_NAME =이 렌더러 = 허가 = "보기"를 "검색") : 검색 = request.params합니다. ("", "검색")
dbsession = DBSession() 반환 검색 항목을 강조 표시로

##Album Results 
query = dbsession.query(Album).join(Artist).join(Genre).join(Song).\ 
    filter(

     or_(
      Album.album_name.like(search + "%"), 
      Artist.artist.like(search + "%"), 
      Genre.genre.like(search + "%"), 

      ) 
     ) 
statalbum = dbsession.query(Album).join(Artist).join(Genre).join(Song).\ 
    filter(

     or_(
      Album.album_name.like(search + "%"), 
      Artist.artist.like(search + "%"), 
      Genre.genre.like(search + "%"), 

      ) 
     ).count() 

# Songs Results 

dbsession = DBSession() 
songs = dbsession.query(Song).\ 
    filter(Song.title.like(search + "%")) 

statsong = dbsession.query(Song).\ 
    filter(Song.title.like(search + "%")).count() 

# paginate 
page_url = paginate.PageURL_WebOb(request) 
albums = Page(query, 
       page=int(request.params.get("page", 1)), 
       items_per_page=12, 
       url=page_url) 
# paginate songs 
songs = Page(songs, 
       page=int(request.params.get("page", 1)), 
       items_per_page=12, 
       url=page_url) 
try: 
    genres = DBSession.query(Genre).order_by(Genre.genre).all() 
    info = DBSession.query(Song).join(Album).filter_by(id=id).filter(Song.album_id == Album.id).first() 
    #albums = DBSession.query(Album).all() 

except DBAPIError: 
    return Response(conn_err_msg, content_type='text/plain', status_int=500) 
return { 'genres':genres, 'info':info, 'songs':songs, 'albums':albums, 'statsong':statsong, 'statalbum':statalbum, 'project': 'beatstore'} 

답변

2
  1. , 당신은 CSS를 사용하여 배경 색상을 변경해야합니다 얻을. 그래서 같은 : .highlighted

    { 배경 색 : # FFFF00; } 그래서

    당신은 클래스가 강조 표시 스팬로 묶어야 할 것이다 단어를 강조, : 데이터베이스에서 JSON를 검색으로

    <span class="highlighted">This is highlighted text</span> 
    
  2. , Javascript에서 AJAX 호출을 만들어 서버를 호출하여 제안을 받아야합니다. 키 누르기 이벤트에서 AJAX 호출을 바인딩해야 할 것입니다. 뭔가 같은 :

    $ ("# 텍스트 필드")의 keyup (함수() {

    $.getJSON("/url_to_suggestions", function(data) { 
    
        $.each(data, function(key, val) { 
    
         //Do something with key and val 
    
        } 
    
    ); 
    

    });.