如何实现删除查询的搜索栏按钮? Django环境)
How to implement a button of the searchbar erasing the query? Django environment)
我正在用 Django 开发一个网络应用程序。
我开发了一个带有两个按钮的漂亮搜索栏。
其中一个(fa fa-search)是搜索和显示数据库的结果,它已经可以工作了。
我希望这样,当我的用户点击另一个(fa fa-trash)时,代码会删除查询并重新加载所有未过滤的结果。
我该怎么做?
这是我的代码:
在views.py:
def glossario(request):
query = request.GET.get('q')
template = "glossario.html"
# query apply
if query:
query = request.GET.get('q') #q è variabile risultante dalla query del database
selected_entries = glossary_entry.objects.filter(Q(Lemma_it__icontains=query))
return render(request, template, {'all_entries':selected_entries})
# no query
else:
all_entries = glossary_entry.objects.all
return render(request, template, {'all_entries':all_entries})
在glossario.html中:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="topnav">
<a id="pulsante_ricerca_avanzata" href="#Ricerca_avanzata">Ricerca avanzata</a>
<div id="blocco_ricerca_semplice" class="search-container">
<form method="GET" action="{% url 'glossario' %}">
<input type="text" placeholder="Ricerca terminologia..." name="q" value="{{request.GET.q}}">
<button id="cancel_search_button" type=""><i class="fa fa-trash"></i></button>
<button id="search_button" type="submit"><i class="fa fa-search"></i></button>
</form>
</div>
</div>
我通过实现一个 Javascript 函数解决了这个问题,该函数在点击垃圾桶后立即清除搜索框中的文本,然后该按钮执行查询(具有 void 参数)。
在glossario.html:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <!-- questo fa apparire il pulsantino di ricerca -->
<!-- questo fa apparire il pulsantino di ricerca -->
<div class="topnav">
<a id="pulsante_ricerca_avanzata" href="#Ricerca_avanzata">Ricerca avanzata</a>
<div id="blocco_ricerca_semplice" class="search-container">
<form method="GET" action="{% url 'glossario' %}">
<input id="testo_slot_ricerca_semplice" type="text" placeholder="Ricerca terminologia..." name="q" value="{{request.GET.q}}"> <!-- è il nome che ho dato anche nella views.py -->
<!-- name dentro input text vuol dire il sintagma che viene dato all'url di tutte le query, seguito da un = per indicarne il bersaglio' -->
<button id="cancel_search_button" onclick="Delete_simple_search()"><i class="fa fa-trash"></i></button>
<button id="search_button" type="submit"><i class="fa fa-search"></i></button>
</form>
<!--at the end of the page-->
{% load static %}
<script type="text/javascript" src={% static "js/Delete_simple_search.js" %}></script>
在 delete_simple_search.js 中,在路径 static/js/delete_simple_search.js:
function Delete_simple_search() {
document.getElementById("testo_slot_ricerca_semplice").value="";
}
有人知道是否有更有效的方法来删除查询吗?
我正在用 Django 开发一个网络应用程序。
我开发了一个带有两个按钮的漂亮搜索栏。
其中一个(fa fa-search)是搜索和显示数据库的结果,它已经可以工作了。
我希望这样,当我的用户点击另一个(fa fa-trash)时,代码会删除查询并重新加载所有未过滤的结果。
我该怎么做? 这是我的代码:
在views.py:
def glossario(request):
query = request.GET.get('q')
template = "glossario.html"
# query apply
if query:
query = request.GET.get('q') #q è variabile risultante dalla query del database
selected_entries = glossary_entry.objects.filter(Q(Lemma_it__icontains=query))
return render(request, template, {'all_entries':selected_entries})
# no query
else:
all_entries = glossary_entry.objects.all
return render(request, template, {'all_entries':all_entries})
在glossario.html中:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div class="topnav">
<a id="pulsante_ricerca_avanzata" href="#Ricerca_avanzata">Ricerca avanzata</a>
<div id="blocco_ricerca_semplice" class="search-container">
<form method="GET" action="{% url 'glossario' %}">
<input type="text" placeholder="Ricerca terminologia..." name="q" value="{{request.GET.q}}">
<button id="cancel_search_button" type=""><i class="fa fa-trash"></i></button>
<button id="search_button" type="submit"><i class="fa fa-search"></i></button>
</form>
</div>
</div>
我通过实现一个 Javascript 函数解决了这个问题,该函数在点击垃圾桶后立即清除搜索框中的文本,然后该按钮执行查询(具有 void 参数)。
在glossario.html:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <!-- questo fa apparire il pulsantino di ricerca -->
<!-- questo fa apparire il pulsantino di ricerca -->
<div class="topnav">
<a id="pulsante_ricerca_avanzata" href="#Ricerca_avanzata">Ricerca avanzata</a>
<div id="blocco_ricerca_semplice" class="search-container">
<form method="GET" action="{% url 'glossario' %}">
<input id="testo_slot_ricerca_semplice" type="text" placeholder="Ricerca terminologia..." name="q" value="{{request.GET.q}}"> <!-- è il nome che ho dato anche nella views.py -->
<!-- name dentro input text vuol dire il sintagma che viene dato all'url di tutte le query, seguito da un = per indicarne il bersaglio' -->
<button id="cancel_search_button" onclick="Delete_simple_search()"><i class="fa fa-trash"></i></button>
<button id="search_button" type="submit"><i class="fa fa-search"></i></button>
</form>
<!--at the end of the page-->
{% load static %}
<script type="text/javascript" src={% static "js/Delete_simple_search.js" %}></script>
在 delete_simple_search.js 中,在路径 static/js/delete_simple_search.js:
function Delete_simple_search() {
document.getElementById("testo_slot_ricerca_semplice").value="";
}
有人知道是否有更有效的方法来删除查询吗?