0
对不起,如果标题不是很清楚。我有一个与AJAX功能兼容的搜索引擎。现在,如果我在搜索框中键入t,那么包含单词t的标签就会出现(例如,如果我输入t,然后显示测试),但事情是在删除单词t之后,所有标签显示在结果部分中。这有意义吗?如果我不清楚我会张贴图片。我不知道为什么或如何解决这个问题。 这是我的代码。调用函数与ajax,部分工作,但部分不工作
<h3>Search</h3>
{% csrf_token %}
<input type="text" id="search" name="search" onkeyup="handle_keyup()"/>
<ul id="search-results">
</ul>
在这里我不能删除搜索结果,因为这将显示搜索结果,但是,当没有任何输入,还是所有的标签显示这部分。 (只显示了所有当我完成使用搜索栏)
我的AJAX
function handle_keyup() {
$.ajax({
type: "POST",
url: "/search/",
data: {
'search_text' : $('#search').val(),
'csrfmiddlewaretoken' : $("input[name=csrfmiddlewaretoken]").val()
},
success: searchSuccess,
dataType: 'html'
});
};
function searchSuccess(data, textStatus, jqXHR)
{
$('#search-results').html(data);
}
问题可能是从那里发生的,但我会后后端为好。这是python django框架。
def search_titles(request):
# categories = SearchQuerySet().autocomplete(content_auto=request.POST.get('search_text', ''))
categories = Category.objects.filter(name__icontains=request.POST.get('search_text', ''))
return render_to_response('main/ajax_search.html', {'categories' : categories})
ajax_Search.html
{% if categories.count > 0 %}
{% for category in categories %}
<li><a href="/category/{{category.name}}">{{ category.name }}</a></li>
{% endfor %}
{% else %}
<li>None to show!</li>
{% endif %}
在此先感谢
谢谢,这似乎有效,但是当我试了一下,给了我一个语法错误类别= Category.objects.filter(name__icontains = TXT)) 不知道为什么,因为它似乎有效,我没有在正确的地方标签。有没有办法通过其他方式解决这个问题? –
嗯,这真的好像没有错误简单的代码,但为什么得到语法错误? –
你把两个))那里,修复后,搜索功能不起作用 –