在Django中发送动态AJAX URL

时间:2013-10-23 07:47:29

标签: django jquery

我有像这样的ajax功能正常工作:

 function show_tasks() {
              $.ajax({
                        type: "GET",
                        url: "/2/todos/", //I want url: "/{{ category.id }}/todos/"
                        success: function(data){
                             $('#tasks').html(data)
                             .css("display", "block");       
                        }
                    });
        }

HTML内容

{% for category in categories %}
    <tr>
    <td width="5%"><input type="checkbox" value="{{ category.id }}" name="category_name" id="category{{ forloop.counter }}" /></td>   
    <td>
        <a data-toggle="tooltip" title="Show Tasks" onclick="show_tasks()">
            {{ category.name }}</a>

{% endfor %}

我该怎么做?

2 个答案:

答案 0 :(得分:3)

使用模板处理器在html中构建url,例如:

...
<a data-toggle="tooltip" title="Show Tasks" 
   onclick="show_tasks({% url 'category_todo' category.id %})">
...

并在您的javascript中添加网址支持:

function show_tasks(url){...
   url: url,
   ...
}

答案 1 :(得分:2)

您可以使用this获取在show_tasks函数中生成click事件的dom元素。从那里,只需使用jquery来查找相邻复选框的值。

您可以在var category = $(this).closest('input').attr('value')中执行show_tasks之类的操作,以获取类别ID并将其提供给$.ajax,如url : "/" + category + "/todos/"