django에서 ajax 사용 질문드립니다.

조회수 803회

안녕하세요,

ajax를 이용하여 select값을 받아서 그에따른 데이터를 장고에서 가공한 다음 다시 다음 select 값에 보여주려고 하는데요, 장고로 데이터를 받는 것까지는 되는데 장고에서 가공한 데이터를 ajax로 전달할 때 ajax에서 어떻게 처리해야 하는지를 모르겠네요.. list값을 전달하고 싶은데 어떻게 해야 하는지 도움을 요청드립니다.

제가 짜놓은 코드는

-------------1차 선택--------------
<div class="select">
     <select id="num"  name="num">
           <option value=""> -----------  Not Selected  ----------- </option>
           <option value="1">1</option>
           <option value="2">2</option>
           <option value="3">3</option>
    </select>
</div>
------------1차 선택에 따른 2차 선택-----------
<div class="select">
     <select id="num_after"  name="num_after">
           <option value=""> -----------  Not Selected  ----------- </option>
           {% for list in num_after %}
           <option value={{list}}>{{list}}</option>
    </select>
</div>

<script> 
        $('#num').change('change',function(){ 
            var num = $('#num').val()
            $.ajax({ 
                url:'ajax/',
                data : {'num':num},
                dataType:'json',
                success:function(data){ 
                        $('#num_after').text(data);
                } 
            }) 
        }) 
</script>

def ajax(requests):
    search_key = requests.GET.get('num',None)
    ...
    #값을 받아서 그에 해당하는 list(num_after)를 전달
    ...
    context = {'num_after':num_after}
    return JsonResponse(context)

어디가 잘못된 부분인지 알려주실 수 있으실까요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    만약 응답하려는 값이 리스트가 아니라 단일값이라고 가정한다면...

    // 2번을 선택하라는 의미의 단일 데이터
    {
        "selectMe": 2
    }
    

    이 경우 응답을 처리하는 스크립트 부분에서:

    success: function(data){
      var $select = $('#num_after');
      var $option = $select.find('option[value=' + data.selectMe + ']');
      // .filter()를 이용한 방법
      // var $option = $select.find('option').filter((idx, ele) => {
      //    return ele.value == data.selectMe;
      // });
      $option.prop('selected', true);
    } 
    

    대-충 요딴식으로 하시면 됩니다.

    • 감사합니다 ! ilalf 2020.4.27 11:28

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)