2016-07-25 58 views
0

我在使用jquery在我的網站上搜索時遇到問題,它只搜索當前顯示的頁面,我希望它搜索所有我的數據,然後顯示在相應的頁面上,大約2.6 M條目。我爲我的分頁使用了核心django分頁器,並在我的搜索工具中使用了簡單的jquery和ajax。請幫忙!需要jQuery來搜索所有頁面上的數據,而不僅僅是在頁面上顯示數據

繼承人我的觀點:

def tissues(request): 
    contact_list = TissueTable.objects.all() 
    paginator = Paginator(contact_list, 100) # Show 25 contacts per page 

    page = request.GET.get('page') 
    try: 
     contacts = paginator.page(page) 
    except PageNotAnInteger: 
     # If page is not an integer, deliver first page. 
     contacts = paginator.page(1) 
    except EmptyPage: 
     # If page is out of range (e.g. 9999), deliver last page of results. 
     contacts = paginator.page(paginator.num_pages) 

    return render(request, '.html', {'contacts': contacts}) 

我的繼承人兩個模板,基地和家庭, base.html文件:

<html> 

    <head> 
<title>Animal NGS DATA</font></title> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"> 
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script> 
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript"> 
    $('a[rel="external"]').attr('target', '_blank'); 
</script> 
<style> 
th 
{ 
border-bottom: 1px solid #d6d6d6; 
} 
tr:nth-child(even) 
{ 
background:#e9e9e9; 
} 
</style> 
</head> 
<body> 

<div data-role="page" id="pageone"> 
    <div data-role="header"> 
    <h1 left>NGS CUFFLINK'S DATA</h1> 
    </div> 

    <div data-role="main" class="ui-content"> 
    <form> 
     <input id="filterTable-input" data-type="search" placeholder="Search Tissue Data..."> 
    </form> 
    <table data-role="table" data-mode="columntoggle" class="ui-responsive ui-shadow" id="myTable" data-filter="true" data-input="#filterTable-input"> 

    </head> 
    <body> 
<map title="Navigation Bar"> 
<P> 
<a href = "http://127.0.0.1:8000/" rel="external"style="display:block;">NGS Data</a> 
<a href= "http://127.0.0.1:8000/genes/" rel="external"style="display:block;">Genes</a> 
<a href = "http://127.0.0.1:8000/experiment/"rel="external"style="display:block;">Experiment</a> 
<a href = "http://127.0.0.1:8000/organisms/"rel="external"style="display:block;">Organisms</a> 
<a href = "http://127.0.0.1:8000/tissues/"rel="external"style="display:block;">Tissue Data</a> 
</P> 
     </map> 
    <h1><font color='red'>Tissue Data</font></h1> 

    {% block content %} 
    {% endblock %} 
    </body> 
{% load staticfiles %} 
<link rel="stylesheet" type="text/css" href="{% static 'myapp/style.css' %}" /> 
</html> 

和我home.html的

{% extends "tissues/base.html" %} 
{% block content %} 
    <!--<table id='table' data-mode="columntoggle" border = '10' bordercolor = 'mahogany'>--> 
<div class="pagination"> 
    <span class="step-links"> 
     {% if contacts.has_previous %} 
      <a href="?page={{ contacts.previous_page_number }}">previous</a> 
     {% endif %} 

     <span class="current"> 
      Page {{ contacts.number }} of {{ contacts.paginator.num_pages }}. 
     </span> 

     {% if contacts.has_next %} 
      <a href="?page={{ contacts.next_page_number }}">next</a> 
     {% endif %} 
    </span> 
</div> 
<table data-role="table" id="myTable" class="ui-responsive ui-shadow" data-filter="true" data-input="#filterTable-input" bgcolor = 'cyan'> 
<thead> 
<tr bgcolor = 'pink'> 
     <th>Tissue ID</th> 
     <th>Tissue Term</th> 
     <th>Definition</th> 
    </tr> 
<thead> 
<tbody> 
    {% for b in contacts.object_list%} 
    <tr> 
     <td>{{b.tissue_id}}</td> 
     <td>{{b.tissue_term}}</td> 
     <td>{{b.definition}}</td> 
    </tr> 
    {% endfor %} 
    </table> 
<div class="pagination"> 
    <span class="step-links"> 
     {% if contacts.has_previous %} 
      <a href="?page={{ contacts.previous_page_number }}">previous</a> 
     {% endif %} 

     <span class="current"> 
      Page {{ contacts.number }} of {{ contacts.paginator.num_pages }}. 
     </span> 

     {% if contacts.has_next %} 
      <a href="?page={{ contacts.next_page_number }}">next</a> 
     {% endif %} 
    </span> 
</div> 

{% endblock %} 

回答

0

看起來像您需要單獨的查看功能,並通過ajax分別提供結果。可能是這樣的東西:

def ajax_activity_objects_search(request): 
    search_phrase = request.GET.get('q') 
    matched = ActivityObject.objects.filter(
     address__icontains=search_phrase, 
    ) 
    response = '' 
    for act_object in matched: 
     response += '<option value="' + str(act_object.id) + '">' \ 
        + act_object.address + '</option>' 

    return HttpResponse(response) 
+0

我對django和ajax很新,老實說,我不確定如何做到這一點。 – george135

相關問題