ajax 实现商品属性表单

来源:互联网 发布:c语言中char怎么用 编辑:程序博客网 时间:2024/06/14 11:50




代码实现:

function clone_row(A)//参数A是当前标签对象{    //选中a标签所在的li,    var li = $(A).parent();    //取出a标签的内容    var opt = $(A).html();    //判断内容    if(opt == '[+]')    {        //复制一个新的li        var newli = li.clone();                newli.find('a').html('[-]');        //追加到li的后面        li.after(newli);    }    else    {        li.remove();    }}

//给商品类型下拉框绑定一个事件,通过ajax 获取属性内容$("select[name=Goods[type_id]]").change(function(){    //通过ajax获取数据内容    var type_id = $(this).val();//获取类型id       if(type_id==0)    {        $('#attr_container').html('');        return false;    }       $.ajax({        type: "GET",        url : "__CONTROLLER__/ajaxGetAttrByTypeId/type_id/"+type_id,        dataType: "json",        success : function(data)        {            // 处理服务器返回的json数据            // 循环每一个属性,拼成一个li的字符串,最后放到上面的ul中            // 以下语法相当于PHP中的: foreach($data as $k => $v):                      var li = "";            // $.each(data,function(k,v){            $(data).each(function(k,v){                li += "<li>";                li += v.attr_name + " : ";                /********* 根据属性的类型生成一个不同的表单元素 **************/                if(v.attr_type == 0)                {                    // 唯一属性                    if(v.attr_option_value == "")                        li += "<input type='text' name='GoodsAttr["+v.id+"]' />";                    else                    {                        // 先把可选值转化成一个数组                        var _attr = v.attr_option_value.split(",");                        li += "<select name='GoodsAttr["+v.id+"]'>";                        for(var i=0; i<_attr.length; i++)                        {                            li += "<option value='"+_attr[i]+"'>"+_attr[i]+"</option>";                        }                        li += "</select>";                    }                }                else                {                    li += "<a href='javascript:void(0);' onclick='clone_row(this);'>[+]</a>";                    // 单选属性                    // 先把可选值转化成一个数组                    var _attr = v.attr_option_value.split(",");                    li += "<select name='GoodsAttr["+v.id+"][]'>";                    for(var i=0; i<_attr.length; i++)                    {                        li += "<option value='"+_attr[i]+"'>"+_attr[i]+"</option>";                    }                    li += "</select>";                }                li += "¥<input name='GoodsAttrPrice[]' type='text' value='0.00' />元";                li += "</li>";            });            // 把构造好的LI放到UL中            $("#attr_container").html(li);        }    });});



0 0
原创粉丝点击