我使用ajax和jquery编写了一个搜索表单,在这里我尝试使用user,start_date和end_date提交表单。
这里是user = q start_date = q1 end_date = q2
搜索代码:
{% extends 'newbase.html' %}
{% block extra_js %}
<script type="text/javascript">
$( document ).ready( function() {
$( '#searchSubmit' ).click( function() {
q = $( '#q' ).val();
$( '#search_results').html( ' ' ).load( '/myapp/results_search/?q=' + q +'&q1='+ q1 +'&q2='+q2 );
});
});
$( document ).ajaxStart( function() {
$( '#spinner' ).show();
}).ajaxStop( function() {
$( '#spinner' ).hide();
});
</script>
{% endblock %}
{% block content %}
<center>
<div>
<input id="q" type="text"/>
<input id="q1" type="text"/>
<input id="q2" type="text"/>
<input id="searchSubmit" type="submit" value="Search"/>
<br/>
<span class="hint">Type in a user & Dates to search </span>
<div class="margin">
<span id="spinner"><img src="/media/img/spinner.gif"/></span>
<div id="search_results"></div>
</div>
</div>
</center>
{% endblock %}
在view.py
中def user_search(request):
data = {
}
return render_to_response('manager/attendance_search.html', data,
context_instance = RequestContext(request))
def results_search(request):
if request.is_ajax():
q = request.GET.get( 'q' )
start=request.GET.get( 'q1')
end=request.GET.get( 'q2' )
if q is not None:
results = MyTable.objects.filter(at_user=q,at_date__gte=start,at_date__lte=end)
data = {
'results': results,
}
return render_to_response( 'search_results.html', data,
context_instance = RequestContext(request))
我的问题是:
如果我只通过编辑此行进行用户搜索,则会提供输出
以下更改有效
$( '#search_results').html( ' ' ).load( '/myapp/results_search/?q=' + q );
在view.py
中 def results_search(request):
if request.is_ajax():
q = request.GET.get( 'q' )
if q is not None:
results = MyTable.objects.filter(at_user=q)
data = {
'results': results,
}
return render_to_response( 'search_results.html', data,
context_instance = RequestContext(request))
但是这里单个搜索正在运行,如果我添加了多个args它不起作用。
我在request.GET.get
中做错了什么请在此处获得帮助
答案 0 :(得分:0)
我已经自己修复了,我忘了在脚本中添加以下行,这些值是空的。现在我得到了搜索结果
q1 = $('#q1')。val(); q2 = $('#q2')。val();