как отправить выбранное значение на django? - PullRequest
1 голос
/ 08 марта 2020

Я пытаюсь реализовать кнопку поиска, используя ajax и django, куда я отправляю выбранное значение на сервер, но не могу получить выбранное значение из тега select HTML, значение переменной всегда пусто ({"obj": ""}) ??

HTML:

div class="col-2">

   <label style="color : white;">Title</label>

             <select name="da" id="da" class="form-control da">
                 <option selected></option>
                        {% for obj in ds %}
                 <option  value="{{obj}}">{{obj}}</option>
                         {%endfor%}

             </select>
         <button type="submit" class="btn btn-warning btn-lg search">ajax</button>

</div>

ajax:

var value = $('#da').val();
console.log(value)

$(document).ready(function() {
      $('.search').click(function(){
 var csrftoken = $('[name="csrfmiddlewaretoken"]').val();
      $.ajax({
               type: "GET",
               url: '/search/ajax/',
               data: JSON.stringify({'obj' : value}),
                headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                "X-CSRFToken": csrftoken
            },

               success: function(response) {
               do somthing ......

                },
                error: function(rs, e) {
                       alert(rs.responseText);
                }
          });
    })
    });


view.py

def filter_ajax(request):
  if request.method == 'GET':

      value = request.GET.get('obj')
      print(value)

1 Ответ

0 голосов
/ 08 марта 2020

Вы должны установить переменную value по клику. Кроме того, я не очень знаком с Django, но вам нужно JSON.Stringify?

var value;
$(document).ready(function() {
  $('.search').click(function() {

    value = $('#da').val(); // Set here

    var csrftoken = $('[name="csrfmiddlewaretoken"]').val();
    $.ajax({
      type: "GET",
      url: '/search/ajax/',
      data: JSON.stringify({
        'obj': value
      }),
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
        "X-CSRFToken": csrftoken
      },

      success: function(response) {
        do somthing......

      },
      error: function(rs, e) {
        alert(rs.responseText);
      }
    });
  })
});
...