Django和js中的传參方法


var curr = $(this)
var id_list = curr.attr('id').split('$$')
var id0 = id_list[0];
var id1 = id_list[1];
var action = curr.text() //还可以从html文本中获取参数信息、
var status_tag = curr.parent().siblings(".join_team_status").first(); //获取上级标签的方法
$.ajax(
{
    url:'home/',
    type: "post",
    data:{ "type":"join_team_reply",
           "id1":"id1" },
    dataType :"json"
    success: function(data)
    {
        if (data.result == 0)
        {
            curr.text('Pending');
            curr.removeAttr("id");//下次点击不再有反应
            curr.removeAttr("class");//同上
        } else
        {
            alert("In team already");
        }
    }
}
);
//django中  if request.is_ajax() and request.method == 'POST' :

#django中函数post返回值的写法
result = 0
return HttpResponse(json.dumps({'result':result}),content_type='application/json')

html中标签的技巧
<td class="" > </td>
<i class="" > </i>

#django render html批量传參的技巧 (字典、列表的嵌套)
d_list=[]
d = {}
attr_list = []
attr_list.append({'left':'hahaha1', 'right':'xixixi1'})
attr_list.append({'left':'hahaha2', 'right':'xixixi2'})
d['attr_list']=attr_list
d_list.append(d)
 

//下拉框方法  默认值方法
<select class="bar0 ef" id="match_select">
    {% for match in match_list %}
        <option value="{{match.id}}"> {{ match.match_name }} </option>
        <option value="公里">公里</option>
        <option value="米" selected="selected">米</option>
        <option value="厘米">厘米</option>
    {% endfor %}
</select>


//还有文档操作的技巧 重点是发送一个post之后回调函数的写法
<p>$.post(
    window.location.pathname,
    {
        "operation_type"    : "get_event_list",
        "sport_id"            : $("#sport_select").first().val(),
        "match_id"            : $("#match_select").first().val()
    },
    function(data, status) {
        $("#event_select").first().empty();
        $.each(data.event_list, function(n, value) {
            $("#event_select").first().append("<option value='" + value.id + "'>" + value.event_name + "</option>");
        });
    }
);
</p>//对应的data的形式为
event_list_p = []
    for event in event_list :
        d = {}
        d["id"] = str(event.id)
        d["event_name"] = event.event_name
        event_list_p.append(d)
    return HttpResponse(
        json.dumps({
            "event_list" : list(event_list_p)
        }),
        content_type = "application/json"
    )
小结:传的参数都是列表中套字典,地点中的对象还可以是列表(render的时候)
其实json就是一个包含字典的列表。
传json的时候json.dumps({"event_list:list(event_list_p)"})


<pre name="code" class="javascript"><pre name="code" class="javascript">//求js动态改变post内容的方法(或许也可以用贴标签的方法解决)
//改变post或者是改变ajax的内容
//可以尝试对$.ajax中的data内容进行修改,data就是一个简单的dict吗?<p>//问题解决! 对词典动态复制发现一个很厉害的函数:eval()</p><p>data = {}</p><p>key = 'key'</p><p>value = 'value'</p><p>eval('data.'+key+'='+value)
</p>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值