Нужна помощь в поиске формы ajax и jquery в django - PullRequest
1 голос
/ 23 февраля 2011

Я написал форму поиска, используя 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 как? q = q & q1 = q1 & q2 = q2 в 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))

но здесь работает одиночный поиск, если я добавил несколько аргументов, он не работает.

Я что-то не так делаю в запросе. GET.get

Пожалуйста, помогите по этому вопросу

1 Ответ

0 голосов
/ 24 февраля 2011

Я исправил это самостоятельно, я забыл добавить строки ниже в скрипты, эти значения становятся пустыми. Теперь я получаю результаты поиска

q1 = $ ('# q1'). Val (); q2 = $ ('# q2'). val ();

...