需要有关django中ajax和jquery搜索表单的帮助

时间:2011-02-23 07:44:29

标签: ajax django jquery django-templates django-forms

我使用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( '&nbsp;' ).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))

我的问题是:

  • 给出日期和用户名后 不会返回任何结果?
  • 如何在ajax中添加多个args 喜欢?q = q&amp; q1 = q1&amp; q2 = q2 in jquery函数?
  • 如何从request.GET.get获取值并传递给ORM?

如果我只通过编辑此行进行用户搜索,则会提供输出

以下更改有效

  $( '#search_results').html( '&nbsp;' ).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

中做错了什么

请在此处获得帮助

1 个答案:

答案 0 :(得分:0)

我已经自己修复了,我忘了在脚本中添加以下行,这些值是空的。现在我得到了搜索结果

q1 = $('#q1')。val(); q2 = $('#q2')。val();