2015-02-19 3 views
0

У меня есть код Django какПередача параметров в URL-адрес с помощью Javascript или Jquery

views.py

def compare(request): 
    import ipdb;ipdb.set_trace() 
    ids = request.GET.getlist('ids', '') 
    products = [] 
    product_matrix = [] 
    for uuid in ids: 
     try: 
      product = LoanProduct.objects.get(uuid=uuid) 
      products.append(product) 
     except LoanProduct.DoesNotExist: 
      pass 
    if products: 
     product_matrix = make_product_matrix(products) 


    print product_matrix 
    return TemplateResponse(request, "products/compare.html", {'product_matrix': product_matrix}) 

page1.html

<div class="row"> 
    <div class="col-md-4 col-lg-3 col-sm-6"> 
     <form action="" method="post">{% csrf_token %} 
     {{ form.as_p }} 
     <button type="submit" class="btn btn-primary">Search</button> 
     </form> 
    </div> 
    <form action="/products/compare/" method="get"> 
    <div class="col-md-8 col-lg-9 col-sm-6"> 
     {% if products %} 
     <table class="table table-hover"> 
      <thead> 
       <tr> 
        <th> Check to Compare </th> 
        <th> Product Name</th> 
        <th> Quantum of finance </th> 
        <th> Interest Rate </th> 
        <th> Nature of Security</th> 
        <th> Margin </th> 
       </tr> 
      </thead> 
      <tbody> 
      {% for product in products %} 
      <tr data-uuid="{{ product.uuid }}" id="uuid"> 
        <th><input type="checkbox" name="ids" id="checkbox" value= {{ product.uuid }} /></th> 
        <td>{{ product.name }}</td> 
        <td>{{ product.get_finance_quantum }}</td> 
        <td>{{ product.get_interest_rate }}</td> 
        <td>{{ product.security }}</td> 
        <td>{{ product.get_margin }}</td> 
       </tr> 
      {% endfor %} 
      </tbody> 
     </table> 
     {% endif %} 
    </div> 
    <button type="submit" id="compare" class="btn pull-right btn-success"> Compare </button> 
</form> 
</div> 

Я, имеющий уникальный UUID за один флажок. Используя, что я получаю элементы, связанные с этим UUID, используя Django views.By это мой URL будет https://localhost:8000/page1?ids=asdf-a972j-aswer&ids=asdf6-asdfewq-asdfwq-dfasfd&ids=asdf0-asdfasdf-asdf

Но мне нужен URL таким образом https://localhost:8000/page1?ids=sdf-asdf23-as2q3r,sdfqwe-232sasdf-23rwdefr,wqerqr-3qwq2r-23rq23r

Как я могу это сделать с помощью JavaScript?

Оцените ответы

+0

Но почему вы ожидали, что URL, а не оригинал, который является стандартным способом использования нескольких значений в HTTP? Таким образом вы можете получить все значения, выполнив 'request.GET.getlist ('ids')'. –

+0

@ DanielRoseman Да. Я получаю все значения с помощью 'request.GET.getlist ('ids')', и моя часть функций работает нормально для меня. Но показывать мне url в вышеуказанном формате. Используя действия

и , я получаю по умолчанию форматы url, передающие параметры. Мне нужно переопределить его – Yashwanth

+0

Что вы пробовали? Обратите внимание: вы не можете повторять идентификатор элемента на странице, они по определению уникальны. Используйте класс вместо – charlietfl

ответ

1

Я попробовал и сделал это сработало.

рабочий код:

$(document).ready(function() { 
    $('#compare').click(function() { 
     var uuids = ''; 
     var length = $("input[type='checkbox']:checked").length; 
     console.log(length); 
     $("input[type='checkbox']:checked").each(function(index){ 
      uuids = uuids + $(this).val(); 
      if (index < length-1) { 
       uuids = uuids + ','; 
      } 
     }); 
     url = '/products/compare/?ids=' + uuids; 
     window.location.replace(url); 
    }); 
}); 

Наконец это дает мне ссылку с UUID развелись с запятой в

https://localhost:8000/page1?ids=sdf-asdf23-as2q3r,sdfqwe-232sasdf-23rwdefr,wqerqr-3qwq2r-23rq23r 
Смежные вопросы